diff --git a/packages/cli/generators/openapi/spec-helper.js b/packages/cli/generators/openapi/spec-helper.js index 0295eabce303..41846dca71b7 100644 --- a/packages/cli/generators/openapi/spec-helper.js +++ b/packages/cli/generators/openapi/spec-helper.js @@ -455,6 +455,13 @@ function buildControllerSpecs(operationsMapByController, options) { controllerSpec.methods = entry.operations.map(op => buildMethodSpec(controllerSpec, op, options), ); + // Track whether param and requestBody decorators are used + controllerSpec.usesParam = controllerSpec.methods.some(m => + m.signature && m.signature.includes('@param('), + ); + controllerSpec.usesRequestBody = controllerSpec.methods.some(m => + m.signature && m.signature.includes('@requestBody('), + ); controllerSpec.methodMappingObject = printSpecObject( controllerSpec.methodMapping, ); diff --git a/packages/cli/generators/openapi/templates/src/controllers/controller-template.ts.ejs b/packages/cli/generators/openapi/templates/src/controllers/controller-template.ts.ejs index ed8dfc0c1e2a..f991f8a41b73 100644 --- a/packages/cli/generators/openapi/templates/src/controllers/controller-template.ts.ejs +++ b/packages/cli/generators/openapi/templates/src/controllers/controller-template.ts.ejs @@ -1,4 +1,4 @@ -import {api, operation, param, requestBody} from '@loopback/rest';<%if (withImplementation) { %> +import {api, operation<% if (usesParam) { %>, param<% } %><% if (usesRequestBody) { %>, requestBody<% } %>} from '@loopback/rest';<%if (withImplementation) { %> import {inject} from '@loopback/core'; import {<%- serviceClassName %>} from '../services';