Самые простые фреймворки для реализации веб-сервисов Java REST
Каковы наилучшие рамки для реализации как клиентских, так и серверных REST-структур в Java? Я немного пытался найти легкое в использовании решение.
Обновление. И Джерси, и Restlet кажутся хорошими вариантами. Вероятно, мы будем использовать Restlet, но мы будем экспериментировать с обоими.
Ответы
Ответ 1
Restlet звучит так, будто он должен обеспечить то, что вы ищете:
- Поддержка клиента и сервера (в относительно симметричном api)
- Интеллектуальная привязка URL
- понимание типа mime (с учетом принятых типов mime, он будет запрашивать ваши ресурсы для их представления в этом типе)
- Поддержка аннотаций JAX-RS (как и Джерси)
Ответ 2
Jersey действительно легко для обоих. Чтобы писать веб-службы, вы используете аннотации:
@Path("/helloworld")
public class HelloWorldResource {
// The Java method will process HTTP GET requests
@GET
// The Java method will produce content identified by the MIME Media
// type "text/plain"
@Produces("text/plain")
public String helloWorld() {
// Return some cliched textual content
return "Hello World";
}
}
Для клиента:
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/helloworld");
String s = webResource.get(String.class);
System.out.println(s); // prints Hello World
Ответ 3
Посмотрите dropwizard.
Ответ 4
Restlet также поддерживает аннотации в своей версии 2.0, как на стороне клиента, так и на стороне сервера. API JAX-RS также поддерживается как расширение.
Вот простой пример для серверной части:
public class HelloWorldResource extends ServerResource {
@Get
public String represent() {
return "hello, world";
}
}
На стороне клиента:
// Outputting the content of a Web page
new ClientResource("http://www.restlet.org").get().write(System.out);
Для дальнейшей документации проверьте эту страницу.
Ответ 5
Там находится новая библиотека RESTEasy JBoss. Кажется, он находится в стадии быстрого развития с момента его первоначального запуска. Я понятия не имею, хорошо ли это; это в моем списке "Проверить это".
Ответ 6
Вы можете взглянуть на реализацию CXF JAX-RS. Полный список его функций можно найти на веб-сайте CXF для JAX-RS.
Сообщество, стоящее за проектом, похоже, очень активно (июль 2013 года). Показателем является количество сообщений в день в списках рассылки CXF.
Ответ 7
Я не использовал его лично, но некоторые команды, с которыми я работаю, используют Spring 3 MVC. REST в Spring 3: @MVC выглядит как хороший обзор блога. Функции RESTful включают "Шаблоны URI", "Консолидация контента", "Преобразование методов HTTP", "Поддержка ETag" и многое другое.
Изменить. Также см. этот вопрос: Может ли кто-нибудь рекомендовать веб-фреймворк Java, основанный на MVC и поддерживающий REST?
Ответ 8
Я могу порекомендовать Apache, новую фреймворк, еще в инкубационном режиме, но очень зрелую и качественную.
http://incubator.apache.org/wink/
Он реализует спецификацию JAX-RS, он имеет как клиентскую, так и серверную среду для разработки REST.
Apache стоит за этим проектом - это всегда хороший знак (и хорошая лицензия:-))
То, что мне больше всего нравится в этой структуре, - интуитивная интеграция с Spring, это очень полезно, если вы хотите, чтобы ваша инфраструктура была легко сконфигурирована и расширена.
Ответ 9
ОБНОВЛЕНИЕ: Xydra Restless больше не поддерживается +++ Если вы используете Goolge AppEngine перед выпуском функции "резервный экземпляр", вы можете рассмотреть Xydra Беспокойный, который имеет несколько функций, но быстро загружается.
Ответ 10
Мой любимый Spring MVC, у вас есть поддержка как на стороне клиента, так и на стороне сервера... И у вас есть поддержка Android тоже =)
Например, вы можете увидеть пример Spring Android здесь