如何使用allOf创建swagger示例组件

9udxz4iz  于 2022-11-06  发布在  其他
关注(0)|答案(2)|浏览(202)
components:
 examples:
    J:
      value:
        name: my name

    J2:
      value:
        allOf: 
          - $ref: '#/components/examples/J'
          - id: 123

在响应正文示例中使用J2:

responses:
  200:
    content:
      application/json:
        examples:
          test:
            $ref: '#/components/examples/J2'

当前结果:

{
  "$ref": "#/components/examples/J",
  "id": 123
}

预期结果

{
  "name": "my name",
  "id": 123
}

相关:https://swagger.io/docs/specification/data-models/oneof-anyof-allof-not/
Swagger schema properties ignored when using $ref - why?

dfddblmv

dfddblmv1#

不支持此操作。
value应该是示例的文字值。因此,value不支持allOf$ref。OpenAPI没有合并多个示例组件的值的方法。

hc2pp10m

hc2pp10m2#

您不能在示例级别合并,但可以在路径级别组合示例。
无效

components:
 examples:
    J:
      value:
        name: my name

    J2:
      value:
        allOf: 
          - $ref: '#/components/examples/J'
          - id: 123

但你可以做到的

components:
 examples:
    J:
      value:
        name: my name

    J2:
      value:
        id: 123

content:
  application/json:
    schema:
      $ref: '#/components/schemas/MyObject'
    examples:
      objectExample:
        allOf :
         - $ref: '#/components/examples/J'
         - $ref: '#/components/examples/J2'

相关问题