我一直在将快速步骤函数集成到 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
}
问题是你已经解析了模板中的json,你想要的是:
##velocity template
#set($output=$input.json('$.output'))
#set($context.responseOverride.status=$output.statusCode)
输入对象的 .json 函数会将其转换为 json 字符串,而不是 VTL 内部的对象