Я начинаю новый проект Java, который потребует RESTful API. Это будет бизнес-приложение SaaS, обслуживающее мобильных клиентов.
Я разработал один проект с Java EE 6, но я не очень знаком с экосистемой, так как большая часть моего опыта на платформе Microsoft.
Что было бы разумным выбором для реализации JAX-RS для нового проекта, такого как описанный?
Судя по списку Википедии , основными претендентами, похоже, являются Джерси, Apache CXF, RESTeasy и Restlet. Но Сравнение Реализаций JAX-RS, приведенное в Википедии, дано с 2008 года.
Мои первые впечатления от соответствующих домашних страниц:
- CXF стремится быть очень всеобъемлющим решением (напоминает мне WCF в пространстве Microsoft), что заставляет меня думать, что его может быть сложнее понять, настроить и отладить, чем мне нужно;
- Jersey является эталонной реализацией и может быть хорошим выбором, но он унаследован от Sun, и я не уверен, как к нему относится Oracle (страница объявлений не работает, а уведомление о последнем коммите получено 4 месяца назад);
- RESTeasy от JBoss и, вероятно, хороший вариант, хотя я не уверен насчет кривой обучения;
- Рестлет, кажется, популярен, но имеет большую историю, я не уверен, насколько он актуален в мире Java EE 6 или имеет ли он тяжелое мышление J2EE (например, множество конфигураций XML).
Каковы будут преимущества каждой из этих альтернатив? Как насчет кривой обучения? Поддержка функций? Инструменты (например, мастера NetBeans или Eclipse)? Как насчет простоты отладки, а также развертывания? Является ли какой-либо из этих проектов более современным, чем другие? Насколько они стабильны?
Ответы:
Я полюбил Dropwizard для общего решения
Вместо того чтобы использовать какой-то огромный подход к контейнеру приложений, Dropwizard предлагает легковесное решение, которое предлагает гораздо более быстрые циклы разработки. По сути, он обеспечивает клей для следующих хорошо известных структур:
Сочетание вышеперечисленного в сочетании с надежным подходом к функциональному тестированию дает комплексное решение для быстрого запуска и запуска вашего сервиса.
Да? И вопрос JAX-RS, который я задал ...
Вы заметите, что они выбрали Джерси, эталонную реализацию JAX-RS. Будучи RESTEasy парнем, я думал, что это будет проблемой, но кривая обучения была нулевой. Эти два в значительной степени взаимозаменяемы. Тем не менее, я бы сказал, что клиент из Джерси предлагает свободный интерфейс для создания тестов. Примером будет ...
источник
Вы можете взглянуть на этот вопрос , в котором обсуждается опыт других разработчиков.
Я могу лично рекомендовать Джерси. Он очень прост в использовании, и у него есть хорошие последователи, потому что это эталонная реализация. Это также означает, что он будет поддерживаться и поддерживаться в течение следующего времени.
источник