diff --git a/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.js b/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.js index 05edee18b..e9497ec8c 100644 --- a/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.js +++ b/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.js @@ -21,7 +21,10 @@ module.exports = { event.http.request && event.http.request.parameters && // check if any parameters are marked as required - Object.values(event.http.request.parameters || {}).some((x) => x) + Object.values(event.http.request.parameters || {}).some((x) => { + if (!_.isObject(x)) return x; + return x.required != null ? x.required : true; + }) ) { if (!validatorLogicalId) { const requestValidator = this.createRequestValidator(); diff --git a/test/fixtures/programmatic/requestParameters/serverless.yml b/test/fixtures/programmatic/requestParameters/serverless.yml index 658673dee..642dec642 100644 --- a/test/fixtures/programmatic/requestParameters/serverless.yml +++ b/test/fixtures/programmatic/requestParameters/serverless.yml @@ -47,6 +47,14 @@ functions: parameters: paths: bar: false + - http: + path: paths-not-required-object + method: get + request: + parameters: + paths: + bar: + required: false - http: path: paths-required method: get diff --git a/test/unit/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.test.js b/test/unit/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.test.js index 5ce34f136..97924dcc0 100644 --- a/test/unit/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.test.js +++ b/test/unit/lib/plugins/aws/package/compile/events/apiGateway/lib/requestValidator.test.js @@ -435,6 +435,7 @@ describe('#compileRequestValidators() - parameters', () => { 'querystrings-not-required', 'headers-not-required', 'paths-not-required', + 'paths-not-required-object', ]; const withValidator = [