【问题标题】:Hot to define a fallback mapping temmplate in AWS Api Gateway?在 AWS Api Gateway 中定义后备映射模板很热门?
【发布时间】:2020-03-24 08:09:33
【问题描述】:

我有一个通过 AWS API Gateway 中的 API 公开的 POST 方法。它将处理某个 JSON。但是有一个奇怪的要求:我应该接受任何东西并总是返回 200 状态码(只要服务可用并且当然可以工作)。

因此,如果我收到 Content-Type: image/jpeg、application/xml 或什么/ever 的调用,我必须能够将请求映射到我的 Lambda 函数。

我已经使用 VTL(速度模板语言)将任何请求映射到自定义类型,问题是我必须在集成请求中指定我想要支持的每一个内容/类型。

我想为不在我已经定义的内容类型中的每个内容类型定义一个后备映射模板。不允许将“*/*”指定为 Content-Type。

我不能使用 When no template matches the request Content-Type header 选项作为传递,因为默认情况下 lambda 函数会尝试从 JSON 格式反序列化正文。

有什么想法吗?

【问题讨论】:

    标签: aws-lambda aws-api-gateway asp.net-core-2.1


    【解决方案1】:

    我认为您应该启用When no template matches the request Content-Type header 选项。 As documented 您的 Lambda 将获得一个 API Gateway 事件。此事件有一个 headers 字段,在 POST 上应该包含一个 content-type 字段。如果您的代码理解内容类型,则处理它。如果不是,则返回具有正确状态代码和任何适当内容的响应。这不是在 API 网关端,而是在 Lambda 端。

    有关其他想法,请参阅this blog

    【讨论】:

      猜你喜欢
      • 2020-09-28
      • 2017-11-30
      • 1970-01-01
      • 2018-12-04
      • 2017-12-29
      • 2018-02-03
      • 2018-01-20
      • 2016-01-21
      • 1970-01-01
      相关资源
      最近更新 更多