如何让Serverless框架请求验证器拒绝Schema未定义的字段
解决方案
要限制请求仅包含Schema中定义的字段,只需在你的JSON Schema中添加"additionalProperties": false配置,这是JSON Schema规范自带的验证规则,API Gateway的Schema验证器支持该配置。
修改后的test.json如下:
{ "definitions": {}, "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "title": "POST/cashin", "required": ["name"], "properties": { "name": { "type": "string" } }, "additionalProperties": false }
说明
additionalProperties设为false时,JSON Schema验证器会拒绝任何包含未在properties中定义的字段的请求。- 你的Serverless Framework配置无需修改,API Gateway会自动读取更新后的Schema并应用新的验证规则。
测试时,传入包含age这类未定义字段的请求,API Gateway会直接返回400错误,不会将请求转发到你的Lambda函数。
内容的提问来源于stack exchange,提问作者Poor programmer
相关产品推荐
相关产品推荐

