В запрос оплаты приходят карты без токена и счета без ИНН
Схема запроса оплаты — один объект со всеми полями необязательными:
Payment:
type: object
properties:
method: {type: string, enum: [card, sbp, invoice]}
cardToken: {type: string}
inn: {type: string}
Для card нужен cardToken, для invoice — inn, для sbp — ничего. Валидация пропускает method: card без токена, и ошибки всплывают только в платёжном шлюзе. Как описать схему?
- oneOf по вариантам с discriminator по method
- Сделать cardToken и inn обязательными всегда
- Описать правила только текстом в description
- Принимать любые поля и проверять их в коде
