Я обновляю свои спецификации API (OAS 3.0.0), и у меня возникают проблемы с пониманием того, как правильно смоделировать «сложное» значение по умолчанию.
Как правило, значения по умолчанию для параметров являются скалярными значениями (т.е. поле offset
имеет значение по умолчанию 0
). Но в указанном API-интерфейсе значение по умолчанию фактически рассчитывается на основе других предоставленных параметров.
Например, что если мы возьмем модель Pet из примера документации и решим, что все животные должны быть помечены. Если пользователь API хочет предоставить тег, отлично. Если нет, оно будет равно названию.
Одна возможность:
Pet:
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
default: '#/components/schemas/Pet/name'
Здесь хранится значение пути по умолчанию, но я бы хотел, чтобы оно объяснило, что значение по умолчанию будет вычислено.
Бонусные баллы, если я могу кодировать информацию из родительской схемы.
Является ли альтернативой просто описать поведение в поле описания?