AWS API Gateway:使用Mock Integration来回显响应主体

时间:2017-12-21 05:29:16

标签: amazon-web-services aws-api-gateway

我正在尝试使用Mock集成来“回复”我发送的JSON正文。但是,我无法让它发挥作用。我可以从“POST - Integration Response”中返回任意JSON主体,但是永远不会通过$input.json('$')找到请求JSON。我已经能够成功回显任何查询参数。

我的API有一个“/”路径和一个定义的单个方法(POST)。导出的yaml为here

有关可能发生的事情的任何想法吗?

3 个答案:

答案 0 :(得分:6)

我发现这实际上是可行的,尽管有点。 首先,在集成请求映射模板中,将正文存储在path参数中。

#set($context.requestOverride.path.body = $input.body)
{
  "statusCode": 200,
}

然后在集成响应映射模板中将其取回并返回。

#set($body = $context.requestOverride.path.body)
{
  "statusCode": 200,
  "body": $body,
}

这似乎在较大的有效载荷下也能很好地工作。

答案 1 :(得分:3)

不幸的是,这不受支持。在“集成响应”的映射模板中,$input表示从集成响应接收的有效负载(在MOCK集成的情况下为空。

答案 2 :(得分:0)

您可以设置一个lambda函数来回显目标,诸如此类:

exports.handler = async (event) => {
    return event;
};