首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让API网关代理错误响应?

如何让API网关代理错误响应?
EN

Stack Overflow用户
提问于 2022-01-29 16:33:33
回答 1查看 161关注 0票数 0

我在Lambda前面有一个API网关。

来自Lambda (HTTP2xx)的成功响应被转发到响应主体。

但是,对于错误响应(HTTP5xx等),API网关使用响应模板转换响应体。

有什么办法可以避免这种情况吗?是否有来自Lambda的原始错误响应体?

在我的兰博达里我有这样的东西:

代码语言:javascript
复制
return callback(generalError, {
            statusCode: 500,
            headers:{
                "content-type": "application/json"
            },
            body: JSON.stringify({
                error: 'INTERNAL_ERROR',
                description: error.message,
            })
        });

但是,作为网关的输出,我得到了以下内容:

代码语言:javascript
复制
{ "error": "Internal server error" }

这不符合。羔羊的反应。它与API网关中的响应模板匹配:

代码语言:javascript
复制
{"message":$context.error.messageString}

但是,是否有一种方法只代理原始的Lambda响应,而不是让这个转换就位?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-29 18:44:08

我找到了它不起作用的原因。

如果您将回调设置为500个错误,包括一个带有error字段的对象,那么无论其他输出或实际错误如何,这都将成为完整的响应。

避免使用error字段就可以了!我把它重命名为serviceError,现在我得到了我期望的响应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70907501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档