Что использовать для проектирования и разработки REST API?

Из популярных инструментов проектирования и документирования REST API есть swagger и apiary. Основной подход это использование фреймворков для REST типа Laravel(Lumen), Guzzle, Silex и аннотации в стиле Swagger, на основе которых потом можно собрать файл для Swagger.
Но обратного подхода я не видел, чтобы на основе проекта Swagger можно было бы собирать скелет для REST сервера - роутинг, проверка параметров и входных данных.

Отсюда и возникает вопрос, как лучше разрабатывать REST API, какой фреймворк использовать, чтобы делать меньше лишней работы по разработке и документированию сервера.

Пока склоняюсь использовать что-то из Lumen или Guzzle с аннотациями Swagger.
  • Вопрос задан
  • 1281 просмотр
Пригласить эксперта
Ответы на вопрос 4
@zatupok3000
У нас проект на 100 000 человек в день, мы используем laravel, очень нравится.
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Ответ написан
Комментировать
https://github.com/swagger-api/swagger-codegen


Server stubs: C# (ASP.NET Core, NancyFx), Erlang, Go, Haskell, Java (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy), PHP (Lumen, Slim, Silex, Zend Expressive), Python (Flask), NodeJS, Ruby (Sinatra, Rails5), Scala (Finch, Scalatra)


Сами мечтаем интегрировать генерацию роутинга и DTO-шек по swagger-спецификации прямо в билд-процесс, но пока ещё не можем таким похвастаться)
Ответ написан
Комментировать
@unchase
Имея (или не имея) серверную реализацию REST API или файл спецификации OpenAPI (Swagger) вы можете:

- автоматически генерировать к ней документацию
- автоматически генерировать клиентский код к имеющемуся REST API для множества языков программирования
- проектировать Api с помощью спецификации, а реализацией на стороне клиента и на стороне сервиса могут заниматься не связанные друг с другом команды разработчиков

Например, вы можете воспользоваться расширением для Visual Studio 2017/2019 Unchase OpenAPI (Swagger) Connected Service для автоматической генерации C# или TypeScript кода для клиента (статья на medium.com), и C# кода контроллеров для сервера по файлу спецификации (это тоже возможно).
Фактически, после генерации кода контроллера их можно заполнить тем функционалом, который Вам нужен, а после вызывать методы контроллера из сгенерированного клиента.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы