步骤函数的 AWS API Gateway 集成响应模板映射

问题描述 投票:0回答:1

我一直在将快速步骤函数集成到 API 网关端点,但遇到了返回以下对象的问题

{
  "statusCode":"500",
  "body":{
    "message: "Internal Server Error"
   }
}

{
  "statusCode": "200",
  "body": {
    "result": {...}
  }
}

我希望能够将 statusCode 映射到 HTTP 状态,将正文映射到 HTTP 响应正文。 我已经能够将 statusCode 映射到 HTTP 状态,如下所示,

##velocity template

#set($inputRoot=$input.path('$'))

#set($output=$util.parseJson($inputRoot.output))

#set($context.responseOverride.status=$output.statusCode)

这是可行的,但是当我尝试归还尸体时,我得到的回应(在邮递员中)是:

{message=Internal Server Error
}
amazon-web-services velocity gateway
1个回答
0
投票

问题是你已经解析了模板中的json,你想要的是:

##velocity template

#set($output=$input.json('$.output'))

#set($context.responseOverride.status=$output.statusCode)

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#input-variable-reference

输入对象的 .json 函数会将其转换为 json 字符串,而不是 VTL 内部的对象

© www.soinside.com 2019 - 2024. All rights reserved.