floor_is_java
@floor_is_java

Как описать в спецификации OpenApi поле DTO, которое является объектом, который лежит в другом пакете (не в DTO)?

Добрый день

Есть проект без OpenApi/Swagger-спецификации с описанными классами Model, Dto и др. в коде
Планирую описать спецификацию, чтобы по ней генерировались DTO-классы.
Описываю в Components классы DTO с полями.
Когда нужно описать поле, которое является объектом и лежит в том же пакете DTO, то пишу так:

UserDto
type: object
properties:
status:
$ref: '#/components/schemas/StatusDTO'

(и ниже в той же спеке у меня описан StatusDTO)

А как сделать ссылку (и можно ли) если одно из полей UserDto является объектом не DTO, а объектом из модели? Например, просто "Status" и лежит в другом пакете. Models.

Я пытался найти решение в документации OpenApi, но что-то не вышло. Нашел только ссылки на другие .yaml-файлы.
Версия OpenApi: 3.0.1
  • Вопрос задан
  • 221 просмотр
Пригласить эксперта
Ответы на вопрос 1
Maksclub
@Maksclub
maksfedorov.ru
Когда нужно описать поле, <...>, то пишу так:

Если вы руками описываете, то руками и опишите модель вашу (статус ваш), и укажите ее через $ref

schemas:
     UserDto:
          type: object
          properties:
          status:
          $ref: '#/components/schemas/StatusModel'

     StatusModel: ~


Для yaml файла не важно название объектов и их иерархия/слои в коде — он работает в рамках своего стандарта и своей иерархии
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы