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

Use J2 in response body examples:

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

Current result:

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

Expected result

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

Related: https://swagger.io/docs/specification/data-models/oneof-anyof-allof-not/

Swagger schema properties ignored when using $ref - why?

Ertuğrul Altınboğa
  • 2,187
  • 4
  • 17
  • 25

2 Answers2

1

This is not supported.

The value is meant to be the literal value of the example. As a result, value does not support allOf and $ref. OpenAPI does not have a way to merge the values of multiple example components.

Helen
  • 87,344
  • 17
  • 243
  • 314
-1

You cannot combine at example level but you can combine examples at path level.

This is invalid

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

But you can do this

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'
Nisha Dave
  • 669
  • 1
  • 9
  • 25