首页 文章

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

提问于
浏览
5

我在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',
        },
    }

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

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


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

Note: 为避免请求的资源上没有'Access-Control-Allow-Origin'标头 . 错误 . 只需在 Headers 中添加 'Access-Control-Allow-Origin': '*' 以及 Content-Type

干杯!

1 回答

  • 1

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

    如果您计划为您的API generate SDKs(目前支持Java,iOS,Android,Javascript),则只需要 Model schemas 来建模API的输入/输出

    Mapping templates 是您可以用来将方法请求的输入转换为集成请求并将集成响应输出转换为最终方法响应的方法 .

    API网关中的 Proxy resource 类型允许您通过方法响应将方法请求代理/传递到集成和集成响应中,而无需处理映射模板(如果您不需要进行任何转换) .

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

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

相关问题