我正在努力了解如何使用AWS API Gateway和Lambda函数(python)作为集成类型设置正确的http状态代码和错误消息。
我正在使用一个简单的例子,这里有详细信息:
Lambda函数
def lambda_handler(event, context):
return_json = {}
if event["request-number"] == "":
raise Exception("Error request-number can't be empty")
elif event["request-number"] == "3":
raise Exception("Value not accepted")
else:
return_json = {"service-activated": "TRUE"}
return return_json
API / resourcetest POST
这与上面的lambda集成。
目标:返回HTTP 400并且正文包含消息当request-number =""时,错误请求号码不能为空
实施:
在正文映射模板中:我已经创建了一个内容类型作为application / json和我使用的模板(在设置之前有一个#标签符号,但是搞砸了这个页面的格式,所以我省略了它:)
set($ inputRoot = $ input.path(' $')) { "消息" :$ input.json(' $。errorMessage') }
我已经检查过方法响应中的http状态400(我已经知道了)
测试 通过AWS API网关控制台,我已经测试过具有HTTP 400,并且正文中的消息错误请求号码不能为空。好我达到了我想要的目标:
我已决定通过Postman和Chrome插件Restlet客户端进行测试,我所获得的是http状态200并且错误消息格式不正确:
现在,这非常奇怪:从AWS API控制台开始,一切都很好,从外部服务中无法正常工作。
有没有人必须处理类似的事情?
谢谢!
答案 0 :(得分:1)
您是否重新部署了API?