首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么模式从其子模式继承数组项的示例?

为什么模式从其子模式继承数组项的示例?
EN

Stack Overflow用户
提问于 2022-01-27 15:02:04
回答 1查看 307关注 0票数 1

OpenAPI 3.0.0,Swagger在线编辑。

我通过allOf鉴别器组成子模式,并为结果模式设置example字段。然而,Swagger并没有提供-is的示例。

架构包含一个源自子架构的数组。数组继承了子架构中的示例项,并使用模式中的示例扩展了列表。

示例

假设我们有两个模式:

代码语言:javascript
复制
Cats:
  type: object
  properties:
    cats:
      type: array
      items:
        type: object
        properties:
          fluffiness:
            type: integer
          names:
            type: string
  example:
    cats:
      - fluffiness: 9
        names: "Felix"
      - fluffiness: 10
        names: "Neko"
        

FluffiestCats:
  allOf:
    - $ref: '#/components/schemas/Cats'
    - type: object
      properties:
        date:
          type: string
          format: "date"
  example:
    cats:
      - fluffiness: 10
        names: "Luna" 
      - fluffiness: 10
        names: "Meowie"
    date: "17-01-2021"

响应某些请求,API检索最毛茸茸的猫,引用#/components/schemas/FluffiestCats/。Swagger生成以下响应示例。

代码语言:javascript
复制
{
  "cats": [
    {
      "fluffiness": 9,
      "names": "Felix"
    },
    {
      "fluffiness": 10,
      "names": "Neko"
    },
    {
      "fluffiness": 10,
      "names": "Luna"
    },
    {
      "fluffiness": 10,
      "names": "Meowie"
    }
  ],
  "date": "17-01-2021"
}

Swagger从子模式示例项中获取两个示例。提供的示例不覆盖子架构示例。

  1. 这种行为是否与规范相抵触?根据描述,模式对象 example字段似乎并不意味着重写,而不是参数对象 example字段。
  2. 如何覆盖子架构示例?还是必须在不使用allOf的情况下重新创建架构

参考文献

  1. 如何在OpenAPI 3中引用数组项示例?
  2. OpenAPI 3.0.0规范
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-27 15:15:12

带有Swagger的这是个问题

修正了SwaggerUI4.5.0和Swagger 4.0.7。

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

https://stackoverflow.com/questions/70880819

复制
相关文章

相似问题

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