Последний вариант, на первый взгляд, кажется замечательным решением. Для многих фреймворков существуют генераторы, которые автоматически создают OpenAPI-спецификацию на основе программного кода сервиса. И это, действительно, прекрасный способ, но, к сожалению, далеко не во всех проектах его удаётся применить, и вот почему:
Комментарий недоступен
Конечно, мы не из них) Это просто пример. По поводу семантики — мы очень запариваемся. Вот, например, как мучительно мы выбирали между `optional: true` и `required: false`: https://jsight.io/blog/convenience-or-habit-required-vs-optional
404 статус это нету сущности и по какой то причине ты стучишься в другой сервер?
А че делать, если решишь апи не через http гонять?
Комментарий недоступен
Спасибо, Александр) Поможете нам, если поставите звезду на гитхабе. https://github.com/jsightapi/online-editor-frontend
Пишу на FastAPI. Документация создаётся автоматически при описании эндпойнтов в коде. ЧЯДНТ?))
Я не знаю точных возможностей FastAPI по генерации документации, но предположу основные ограничения, универсальные для такого подхода:
1. По описанию правил и ограничений в данных вы ограничены той коробочной валидацией, которую дает фреймворк. Если что-то валидируете уже своими силами, в документацию это не попадет. Часто для этого фреймворки оставляют вмешаться в процесс генерации и что-то там поправить, но это еще один слой программирования, поддержания актуальности и новые места для ошибок.
2. Вы доверяете генератору в своей фреймворке. Где-то они работают относительно надежно, где-то нет, т.е. подход сам по себе ненадежный, если смотреть глобально.
3. Вы используете только этот фреймворк и язык. Захочется поменять язык или добавить в АПИ сервис на другом языке, появится много ручного труда, собирание документации из разных источников, а описанные выше проблемы умножатся на 2.