You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入Swagger Petstore到Amazon API Gateway遇问题求解决方案

解决Swagger Petstore导入Amazon API Gateway的两类问题

一、API Gateway不支持Swagger的default方法响应问题

原因

Amazon API Gateway的Swagger/OpenAPI导入逻辑不兼容OpenAPI 2.0中的default响应定义,它要求必须明确指定具体的HTTP状态码响应,不允许用default作为兜底响应。

替代方案与最简修复

  • 替代方案1:明确指定状态码响应
    根据接口实际可能返回的HTTP状态,列出对应的响应定义(比如200成功、400参数错误、500服务器错误等),覆盖原来的default响应。
  • 替代方案2:利用API Gateway默认集成响应
    直接删除Swagger中POST /user/createWithList下的default响应块,导入后在API Gateway控制台给该方法配置默认集成响应,用来处理所有未明确定义的状态码。

示例修复(Swagger代码修改)

把原来的default响应替换为具体状态码:

paths:
  /user/createWithList:
    post:
      responses:
        200:
          description: "用户列表创建成功"
          schema:
            type: object
            properties:
              code:
                type: integer
                format: int32
              message:
                type: string
        400:
          description: "无效的输入参数"

二、GET /user/login的200响应不支持StringSchema类型问题

原因

Swagger Petstore示例中的StringSchema属于自定义命名的Schema,但API Gateway仅识别标准OpenAPI类型定义:

  1. 如果示例中直接使用$ref: '#/definitions/StringSchema'但未在definitions块中定义该Schema,API Gateway会无法识别;
  2. 即使定义了,部分旧版API Gateway对自定义Schema的支持也有限,更倾向于直接使用标准类型。

修正方式

  • 最简直接修复
    把引用自定义StringSchema的代码替换为标准的string类型定义:
paths:
  /user/login:
    get:
      responses:
        200:
          description: "登录成功"
          schema:
            type: string
  • 复用型修复(如需重复使用该类型)
    在Swagger的definitions块中明确定义StringSchema:
definitions:
  StringSchema:
    type: string

之后再通过$ref引用就能被API Gateway正常识别。

内容的提问来源于stack exchange,提问作者Joymaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:57:03