如何在AWS API Gateway中正确映射我的响应

Sib*_*ain 5 python amazon-web-services aws-lambda aws-api-gateway

我在AWS API Gateway中创建了一个调用Lambda函数的API.这是我用来返回几乎类似于Python Lambda Blueprint的application/json响应的代码:

def response(status_code, response_body=None):
    return {
        'statusCode': status_code,
        'body': json.dumps(response_body) if response_body else json.dumps({}),
        'headers': {
            'Content-Type': 'application/json',
        },
    }
Run Code Online (Sandbox Code Playgroud)

目前我只有一个HTTP状态代码200.我很难为这个响应制作模型模式.

如何让身体摆脱这种反应并将其正确显示给消费者?


编辑: 我需要使用Lambda代理集成创建我的API,因为在这里我从Lambda返回响应而根本不转换它.此外,这里不需要模型架构.有关详细信息,请阅读接受的答案.

注意:为避免请求的资源上没有"Access-Control-Allow-Origin"标头.错误.只需添加'Access-Control-Allow-Origin': '*'标题即可Content-Type

干杯!

Lor*_*ara 1

只是为了确保我们对 API Gateway 术语的理解一致:

如果您计划为 API生成 SDK(当前支持 Java、iOS、Android、Javascript),则仅需要模型架构来对 API 的输入/输出进行建模

映射模板可用于将方法请求的输入转换为集成请求,并将集成响应的输出转换为最终方法响应。

如果您不需要执行任何转换,API Gateway 中的代理资源类型允许您将方法请求代理/传递到集成中,并将集成响应代理到方法响应中,而无需处理映射模板。

除非您明确需要在 API 网关层转换 Lambda 输出,否则我建议您研究代理资源类型,它与 ANY 方法和贪婪路径变量一起应该只是您的 API 网关配置,以实现最简单的传递/代理用例。

https://aws.amazon.com/blogs/aws/api-gateway-update-new-features-simplify-api-development/