如何修改flask无服务器应用中的状态码?

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

我有一个使用serverless、apigateway(使用lambda代理集成)和lambda函数部署的rest api,我试图从lambda中返回一个自定义状态代码。根据 AWS文档本回答 发回口述

{
  "isBase64Encoded" : "boolean",
  "statusCode": "number",
  "headers": { ... },
  "body": "JSON string"
}

应该足以让apigateway识别这一点,并使用该statusCode作为实际的状态码,而不是只发送200。我认为当你可以直接访问lambda处理程序时,这是很好的,但是在serverless + Flask中,你不能访问修改主处理程序(它位于serverless生成的wsgi_handler.py中)。这使得每次我在我的flask应用中返回一个像上面这样的dict时,它都会被渲染成一个字符串,而不是api网关识别为响应类型。我目前发现的修改状态码的方法是在我的flask应用中把它作为返回的第二个参数返回。

@app.route('/update', methods=['PUT', 'DELETE'])
def update():
    return "this is not found", 404

这是flask的问题,还是wsgi的问题?从flask应用向apigateway发送自定义状态码的正确方法是什么?

python amazon-web-services flask serverless-framework
© www.soinside.com 2019 - 2024. All rights reserved.