Я ищу несколько советов с моей спецификацией Open API 3.0, это пример моего объекта пользовательской схемы.Я надеюсь сделать некоторые поля необязательными, но не знаю, как их определить.
Когда я вставляю полную спецификацию в https://editor.swagger.io, она отображает все в «Попробуйтевне функции.Некоторые из других моделей больше, поэтому удаление всех связанных полей может быть довольно громоздким, может быть, они могут показать fieldName: {}, так что вы знаете, что они там доступны?Я не уверен, как это должно быть обработано.
Этот объект схемы используется для POST, PUT и GET как объект $ ref, я пытаюсь сделать его СУХИМЫМ, насколько это возможно.
Возможно, стоит также отметить, что из-за того, что инструмент пока не работает должным образом (или, может быть, это моя спецификация), я конвертирую конечный результат в swagger 2.0 для генерации библиотек Swift 4 и Angular Typescript.
ТакжеСтоит отметить, что я вызываю эти дополнительные поля с помощью API, используя параметр строки запроса include, например users? includes = person, person.telephone, creationByUser, repStats и т. д. Так что я хочу, чтобы они были включены только в запрос GET.
См. Прокомментированные поля ниже.
User:
type: object
properties:
uuid:
type: string
username:
type: string
password:
type: string
format: password
email:
type: string
personUuid:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
createdByUuid:
type: string
updatedByUuid:
type: string
# Relations.
# I want these read only and optional on GET requests.
# They can be there on PUT/POST requests, the server will simply
# ignore them.
person:
$ref: '#/components/schemas/Person'
createdByUser:
$ref: '#/components/schemas/User'
updatedByUser:
$ref: '#/components/schemas/User'
repStats:
$ref: '#/components/schemas/RepStats'