【问题标题】:AWS Api Gateway - Validate incoming XML payloadAWS Api Gateway - 验证传入的 XML 有效负载
【发布时间】: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


【解决方案1】:

是 APIGW 仅支持 json 有效负载验证。

【讨论】:

  • 这是否意味着例如Content-Type: multipart/form-data 根本没有经过验证,尽管存在有效的模式定义?你们到底为什么不在文档中提到这一点?我花了几个小时试图让这个工作......?
猜你喜欢
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 2021-11-20
  • 2023-03-05
  • 1970-01-01
  • 2017-08-16
相关资源
最近更新 更多