【发布时间】:2018-12-31 07:34:27
【问题描述】:
我正在尝试通过 API 网关验证传入的 XML 有效负载。具体来说,我什至不关心架构,我只想确保正文不为空(如果我可以获得该功能,它可能是有效的 XML)。我看到多年前的各种帖子表明 API Gateway 尚不支持 XML 输入验证。
有人可以确认情况是否仍然如此吗?为了提供一个具体的例子,我有一个这样的模型:
{
"$schema" : "http://json-schema.org/draft-04/schema#",
"title" : "Test Schema",
"type" : "object",
"minProperties": 1,
"properties": {
"account_id": {
"type": "string",
"pattern": "[A-Za-z]{6}[0-9]{6}"
}
},
"required": ["account_id"]
}
如果我使用此模型为内容类型“application/json”添加请求正文验证,一切都很好,但如果我对内容类型“application/xml”执行相同操作,则不会执行验证。
【问题讨论】:
-
冒着问显而易见的风险,您实际上是否在请求中(在客户端)中设置了
Content-Type: application/xml标头?服务不会嗅探实际的内容类型,如果客户端在请求中没有发送Content-Type标头,则假定它是application/json。 -
是的,谢谢,好电话。
-
嗯...仔细查看文档,似乎不支持 XML,但很难确认。我想这就是你问的原因。 :)
-
大声笑是的,我在文档中没有看到任何提及。我可以理解无法验证 XML 模式,但这似乎是一个非常有效(且简单)的用例(确保有效负载不为空)。
-
我认为这里的答案是通过 API Gateway 仅支持 json 验证,任何其他类型的验证都需要自定义代码,但如果其他人有好的想法,将保持打开状态。
标签: amazon-web-services aws-api-gateway