Для тела можно добавить полиморфизм, описание схемы и выбор oneOf —
https://stackoverflow.com/questions/70555022/swagger-swashbuckle-polymorphism-doesnt-work-with-interface-types
А вот как быть если хочется классический GET-запрос?
REST обязывает не использовать глаголы и именовать на основе сущностей. Для примера, хочешь получить предпросмотр некой финансовой сводки по заказу без оформления заказа (без сохранения в системе). Делаем запрос типа GET /order-preview и передаем туда фильтр. Варианта два — либо на основе шаблона либо на основе данных (как то ID количество товаров).
Как бы REST обязывает тут использовать полиморфизм — т.е. два разных типа запроса. Не назвать же OrderPreviewByTemplateId и просто OrderPreview. Так нельзя, ибо получается что мыслим в концепции RPC — нужно как-то подогнать под концепцию.
Но! Поскольку у нас GET-параметры, то нет встроенной схемы, как по ссылке выше, и поддержки оного полиморфизма. Можно просто тупо все параметры в кучу. Но тогда сразу минус — не ясно какие параметры совместимы а какие нет, какие предавать а какие нет для каждого из двух случаев.
Как же натянуть концепцию REST на данный случай? Или, все же, не все в мире гвозди, даже если в руках молоток?
Здравствуйте, Shmj, Вы писали:
S>Для тела можно добавить полиморфизм, описание схемы и выбор oneOf — https://stackoverflow.com/questions/70555022/swagger-swashbuckle-polymorphism-doesnt-work-with-interface-types
S>А вот как быть если хочется классический GET-запрос?
Вообще не стоит использовать в REST полиморфизм. Ни в теле, ни в GET.
S>Как бы REST обязывает тут использовать полиморфизм
Нет, не обязывает.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>