请求正在覆盖HTTP方法?

时间:2016-08-02 05:54:49

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

目标:获取调用AWS-API网关上的资源(路由)的方法。

我的进度:我有一个端点,它有GET,PATCH,POST方法,在集成请求步骤中映射到模板。 PATCH的模板如下所示:

"editJobsTemplate": {
     "application/json": {
     "method": "$context.httpMethod",
     "job": "$input.json('$.job')"
    }
 }

使用this document创建。

问题:当PATCH正文为空时,我会得到如下响应:

{
  "eventType": {
    "method": "PATCH",
    "job": ""
  }
}

但是当有一个对象将'job'作为在身体中发送的密钥时......

{
  "job":"some text value"
}

然后响应如下:

{
  "eventType": {
     "job": "some text value"
  }
}

编辑1

This是API网关资源面板中模板的屏幕截图。

我在Postman上测试了以获得this result

编辑2 This将根据b.b3rn4rd的响应显示Content-Type标头设置为application / json,this显示我之后得到的响应。

1 个答案:

答案 0 :(得分:1)

调用端点时,请确保指定适当的内容类型标头。在你的情况下,它可能是Content-Type: application/json,否则,将跳过请求映射,并且请求将按原样传递给(lambda?)。

此外,我已经发现了"job": "$input.json('$.job')"

的另一个潜在问题

应该是:

"job" : $util.escapeJavaScript($input.json('$.job')) 没有引号!