Большинство ответов в моем чванстве имеют 2 ключа status
, обозначающих статус HTTP, и result
, обозначающих ответ от этой конечной точки.
Взять, к примеру, следующие 2 ответа NoContent
и UserResponse
.Они практически одинаковы, отличаются только значением result
.Мне было интересно, если бы было возможно реорганизовать это в один ответ, принимая различные значения для result
.
NoContent:
description: Successful operation
content:
application/json:
schema:
required:
- status
- result
properties:
status:
$ref: '#/components/schemas/StatusOK'
result:
type: object
UserResponse:
description: Successful operation
content:
application/json:
schema:
required:
- status
- result
properties:
status:
$ref: '#/components/schemas/StatusOK'
result:
$ref: '#/components/schemas/UserResponse'
Я смотрел на allOf , но он принимает только подсхемы,следовательно, следующее было бы невозможным.
SuccessResponse:
description: Successful operation
content:
application/json:
schema:
required:
- status
- result
properties:
status:
$ref: '#/components/schemas/StatusOK'
NoContent:
allOf:
- $ref: '#/components/responses/SuccessResponse'
- type: object
properties:
result:
type: object