当前位置: 首页 > 知识库问答 >
问题:

如何在Swagger规范中定义不同示例的数组?

董高逸
2023-03-14

我试图用一个静态的swagger文件来记录一个API,该文件可以返回一些JSON,其中包含一个类似如下的数组:

[
  {
    "type": "type A",
    "field A": "this field is specific to type A"
  },
  {
    "type": "type B",
    "field B": "this field is specific to type B"
  }
]

我尝试了几种不同的方法来定义规范,使用多态性或显式定义多个示例。这些例子要么最终看起来像:

[
  {
    "type": "type A",
    "field A": "this field is specific to type A",
    "field B": "this field is specific to type B"
  }
]

或者只是:

[
  {
    "type": "type A",
    "field A": "this field is specific to type A"
  }
]

有没有办法在我的swagger规范中定义一个示例,以便swagger-ui显示的示例有效负载将包含一个数组,该数组包含一个A类型的示例和一个B类型的示例,就像我编写的第一个JSON一样?

共有2个答案

曾永新
2023-03-14

你不能。

每个响应的每个哑剧类型只能定义一个示例:

{
  "description": "A response",
  "schema": {
    "type": "string"
    }
  },
  "examples": {
    "application/json": {
      "name": "Dog"
    },
    "application/xml": {
      "name": "Cat"
    }
  }
}

如果您想添加完整的场景,我建议您在HTML页面中编写(或生成)完整的场景示例,并将其与externalDocs链接。您可以在根、操作、标记和模式中定义externalDocs。

微生俊
2023-03-14

事实上,你可以。在responses对象中,放置一个带有数组的examples对象作为mime类型的值。像这样:

    400:
      description: Bad Request
      examples:
        application/json:
          [
            {
              code:10000,
              message:"Missing Input Parameters",
              fieldA: "AAAAA"
            },{
              code:42,
              message:"Ask the question",
              fieldB: "BBBBBB"
            }
          ]
    default:
      description: Unexpected error
      schema:
        $ref: '#/definitions/Error'
 类似资料:
  • 我试图传达身份验证/安全方案需要设置一个头,如下所示: 这是我根据swagger文档所做的:

  • 我正在为一个新endpoint创建一个招摇规范,该endpoint将接收一个作为二进制数据的文件。你会如何在夸张的规范中表达这一点?我将对象视为数据类型,但这似乎不是我要寻找的。过去有人这样做过吗? 据我所知,这个问题不是重复的,因为它专门涉及二进制或“blob”对象类型。

  • 在我的swagger Open API文档中,我给出了如下的对象定义: 我找不到电子邮件地址的格式,如: 我看了官方文件,他们说: 即使本规范未定义,也可以使用“email”、“uuid”等格式。未附带格式属性的类型遵循JSON模式中的类型定义。 我正在努力实现这一点,任何提示我如何才能实现这一点?

  • 我正在用Apache CXF构建Spring Boot应用程序。当尝试添加swagger时,我没有在spec中定义任何操作!错误,尽管我通过注释指定了1-2个操作。Swagger的CXF配置部分如下: 我相信功能设置不正确。我错过了什么?api-docs的链接如下所示:http://localhost:8080/cxf/todo_list/api-docs?url=/cxf/todo_list/s

  • 我有一个服务,它可以基于头有两种不同的主体参数。 例如。对于路径: > 如果使用 ,则 POST 可以将 作为正文参数。 如果使用了,那么POST应该使用一些不同的主体参数来调用函数并返回不同的响应。 关于如何在OpenAPI(Swagger)中体现这一点,有什么建议吗?

  • 这里是Spring靴。在实现复杂查询的上下文中使用和时,我正试图理解这些内容,并努力在几个项目上看到“树丛中的森林”。 的一个规范示例如下: 在这个方法中,和表示什么?最重要的是,听起来您需要为要应用的每种类型的筛选器创建一个impl,因为每个specificimpl被翻译成一个且仅一个谓词...例如,如果我想查找所有姓氏为“smeeb”且年龄大于25岁的人,听起来我需要编写一个以及一个。有人能为