【问题标题】:API Gateway and Swagger UIAPI 网关和 Swagger UI
【发布时间】:2016-12-24 08:14:36
【问题描述】:

我目前在我们的 API 网关中有一个包含多个资源的 API,我正在开发一个 Swagger UI 页面。

很多我自己写的 swagger ui 定义,虽然我知道有导出功能 - 它似乎还没有 100% 准备好。

当使用 swagger 中的 Try it out 按钮时,如果我返回 200,这将得到完美处理,结果按预期显示。我正在尝试显示错误代码,这就是我卡住的地方。

在 API Gateway 中,我在我的 Method response 中创建了一个 401,包括一些允许的标头,这在我的 Integration Response 中用于 Unauthorized.*HTTP status regex - 它的内容只是被传递。

我的 swagger UI 定义响应如下所示(尤其是 401):

"401": {
"description": "Unauthorized",
        "headers": {
            "Access-Control-Allow-Origin": {
            "type": "string"
                   }
        }
},

这只是期待一个字符串响应。我的“产品”应有尽有,以防万一;

"produces": ["application/json",
            "text/json",
            "application/xml",
            "text/xml"],

通过inspector的结果是正确的——

然而我的大摇大摆仍然会产生这个:

我尝试了很多方法,包括将对象分配给响应类型,将我的正则表达式更改为 4\d{2} 以捕获任何 400 错误,更新了定义产生的 - 所有这些都没有运气。

如果有任何其他信息需要帮助,请告诉我。

【问题讨论】:

    标签: amazon-web-services swagger-ui aws-api-gateway swagger-editor


    【解决方案1】:

    我假设您使用的是自定义授权方或 Cognito 授权方,这就是产生 401 的原因?

    不幸的是,存在一个已知限制,即错误方法(例如来自授权方的 401 或 403)不包含已配置的标头映射。

    【讨论】:

    • 其他错误或响应(即 500 / 429 等)呢?除了 200 之外,没有其他响应产生(我只知道它们通过检查页面网络发生)
    • API 网关生成的错误(例如 500 或 429)将表现出相同的行为。
    • 所以基本上你是这么说的,除非 200 - 在这种情况下我不会得到任何其他回复?
    • 不,如果您的后端生成非 200,那么事情会按预期工作。如果非 200 是由 API 网关生成的(权限被拒绝、内部错误、限制等),则会出现此问题。
    • 终于修复了限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2022-11-17
    • 1970-01-01
    • 2020-09-14
    • 2019-02-18
    • 2020-04-30
    • 1970-01-01
    相关资源
    最近更新 更多