#swagger #openapi #swagger-editor
Вопрос:
У меня есть две схемы в файле openapi:
SchemaA:
type: object
properties:
property_a1:
type: string
property_a2:
type: string
SchemaB:
type: object
properties:
property_b1:
type: string
property_b2:
type: string
Я хочу, чтобы результирующая схема была:
ResultantSchema:
type: object
properties:
property_a1:
type: string
property_a2:
type: string
property_b1:
type: string
property_b2:
type: string
Я пробовал использовать оператор allOf для объединения следующим образом:
ResultantSchema:
type: object
properties:
- $ref: '#/SchemaA'
- $ref: '#/SchemaB'
Но это приводит к результату в виде схемы с двумя объектами внутри:
WrongResultantSchema:
- type: object
properties:
property_a1:
type: string
property_a2:
type: string
- type: object
properties:
property_b1:
type: string
property_b2:
type: string
Что неверно… Есть ли какой-либо способ получить результирующую схему с одним объектом вместо двух вложенных объектов?
Ответ №1:
Вот как объединить несколько схем в OpenAPI 3.0:
ResultantSchema:
allOf:
- $ref: '#/components/schemas/SchemaA'
- $ref: '#/components/schemas/SchemaB'
В OpenAPI 2.0 ( swagger: '2.0'
):
ResultantSchema:
allOf:
- $ref: '#/definitions/SchemaA'
- $ref: '#/definitions/SchemaB'
Комментарии:
1. Нет, это не работает, он по-прежнему показывает два объекта в одной схеме.
2. Можете ли вы добавить скриншот того, что не так?