【发布时间】:2021-07-11 13:13:38
【问题描述】:
刚刚通过 AWS 学习 - 我有一个带有 Lambda 代理集成的 APIGateway REST API 设置。 API 定义了一个模型,并使用此模型在正文上请求验证设置。
说模型是
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"propertyA": {
"type": "string"
},
"propertyB": {
"type": "string"
},
"propertyC": {
"type": "string"
},
"propertyD": {
"type": "string"
}
},
"required": ["propertyA", "propertyB", "propertyC", "propertyD"]
}
现在,如果我通过 APIGateway 控制台测试 API,并故意提供无效输入(省略必需的属性 propertyD):
{
"propertyA": "valueA",
"propertyB": "valueB",
"propertyC": "valueC"
}
请求失败并出现错误(400):Sun Jul 11 13:07:07 UTC 2021 : Request body does not match model schema for content type application/json: [object has missing required properties (["propertyD"])]
但是当我使用来自 Postman 的相同无效输入调用相同的 API(和阶段)时,验证似乎没有发生,并且请求被代理到 Lambda,只要我注释掉它甚至返回 200 OK部分代码依赖于propertyD。
这里有什么不同?我应该从客户端传递任何请求标头吗?我在 AWS 文档中找不到任何内容
【问题讨论】:
标签: amazon-web-services aws-api-gateway