Я знакомлюсь с Java намного больше, чем планировал в своей карьере. Так получилось, что мне нужно разработать стандартный набор API для публичного использования, и я наткнулся на Swagger.io, который представляет собой API Framework/Guideline. Это похоже на WSDL. Он позволяет автоматически генерировать код из Contract-first Document. Таким образом, вы можете написать, как выглядит ваш JSON, и Swagger сгенерирует код. Я заметил, что он поддерживает множество фреймворков JAX-RS. Теперь JAX-RS — это еще одна спецификация API для Java https://jax-rs-spec.java.net/, и они так хорошо работают вместе. Официального моста между Swagger и JAX-RS нет, но я был продан. Как и другие люди в моей команде. Мы можем генерировать как серверный, так и клиентский код из спецификации API. Конечно, нам нужно заняться бизнес-логикой, но не выполнять рутинной работы.
Итак, JAX-RS — это то, с чем я собираюсь работать. Это идеально подходит для тех, кто пришел из мира Python Flask/Django. Я предлагаю это хорошее обучающее видео по JAX-RS с майкой, сделанной Koushik из Java Brains. Вы можете найти плейлист здесь https://www.youtube.com/playlist?list=PLqq-6Pq4lTTZh5U8RbdXq0WaYvZBz2rbn Существует также расширенный JAX-RS, который я еще не проверил, но будет полезно знать, если мне понадобится дополнительная информация. . Несмотря на то, что у меня есть рабочие API, обслуживающие миллионы пользователей каждый день, я очень многого не знаю, и поиск ответов всегда меня удивляет.
В настоящее время я использую службы API Azure для развертывания служб JAX-RS, и это довольно просто, поскольку они поддерживают git push.
Причина, по которой я углубляюсь в JAX-RS, заключается в том, что я могу сделать контракт последним и аннотировать для Swagger. Но это действительно зависит от ваших требований и проекта
Swagger не освещается в видео. Я опубликую об этом, как только я разработал образец.
Изменить: это лучший образец проекта, который я нашел https://github.com/swagger-api/swagger-samples/tree/master/java/java-jersey-jaxrs.
В нем есть все, что вам нужно. Пример проекта JAX-RS с аннотациями Swagger. Я рекомендую этот способ, JAX-RS->Swagger, вместо этого, если вы не собираетесь использовать метод Contract First