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

时间:2017-01-04 13:45:45

标签: python amazon-web-services aws-lambda aws-api-gateway

我在AWS API Gateway中创建了一个调用Lambda函数的API。这是我用来返回几乎类似于Python Lambda蓝图的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',
        },
    }

目前我只有一个HTTP状态代码200.我很难为此响应制作模型架构。

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

修改 我需要create my API with Lambda Proxy Integration,因为在这里我将从Lambda返回响应并且根本不转换它。此外,这里不需要模型架构。有关详细信息,请阅读接受的答案。

注意:要避免否请求资源上存在“Access-Control-Allow-Origin”标头。错误。只需在标题中添加'Access-Control-Allow-Origin': '*'以及Content-Type

即可

干杯!

1 个答案:

答案 0 :(得分:1)

只是为了确保我们与API网关术语在同一页面上:

模型架构仅用于建模API的输入/输出,如果您计划generate SDKs用于API(目前支持Java,iOS,Android,Javascript)

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

API网关中的

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

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

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