Самые простые фреймворки для реализации веб-служб Java REST [закрыто]
каковы лучшие фреймворки для реализации как клиентских, так и серверных фреймворков REST в Java? Я боролся немного, чтобы найти простое в использовании решение.
обновление: как Джерси и Restlet, кажется, хорошие варианты. Мы, вероятно, будем использовать Restlet, но мы будем экспериментировать с обоими.
10 ответов
Restlet звучит так, как будто он должен предоставить то, что вы ищете:
- поддержка клиента и сервера (в относительно симметричном api)
- интеллектуальная привязка url
- понимание типа mime (учитывая принятые типы mime, он будет запрашивать ваши ресурсы для их представления в этом типе)
- поддерживает аннотации JAX-RS (так же, как Джерси)
Джерси это очень легко для обоих. Чтобы написать веб-службы, вы используете аннотации:
@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
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);
дополнительные документы, проверять эту страницу.
вот новый JBoss RESTEasy библиотека. Он, как представляется, находится в стадии быстрого развития с момента его первоначального запуска. Я понятия не имею, хорошо ли это; это в моем списке "проверьте это".
вы можете взглянуть на реализацию CXF JAX-RS. Для получения полного списка его функций проверьте веб-сайт CXF для JAX-RS. Сообщество, стоящее за проектом, кажется очень активным (июль 2013). Показателем этого является количество сообщений в день в списки рассылки CXF.
Я не использовал его лично, но некоторые команды, с которыми я работаю, используют Spring 3 MVC. отдых весной 3: @MVC выглядит как хороший обзор сообщений в блоге. Функции RESTful включают "Шаблоны URI", "согласование содержимого", "преобразование метода HTTP", "поддержка ETag" и многое другое.
редактировать: Также см. Этот вопрос: может ли кто-нибудь рекомендовать веб-фреймворк Java, основанный на MVC и поддерживающий REST ?
Я могу порекомендовать Apache wink, новый фреймворк все еще в инкубационном режиме, но очень зрелый и качественный.
http://incubator.apache.org/wink/
он реализует спецификацию JAX-RS, он имеет как клиентскую, так и серверную платформу для разработки REST. Apache стоит за этим проектом-это всегда хороший знак (и хорошая лицензия :-) )
Что мне больше всего нравится в этой структуре, это интуитивная интеграция с Spring, это очень полезно, если вы хотите, чтобы ваш фреймворк был легко настроен и расширен.
обновление: Xydra Restless больше не поддерживается +++ если вы используете Goolge AppEngine, прежде чем они выпустят функцию "резервный экземпляр", вы можете рассмотреть Xydra Restless, который имеет несколько функций, но загружается быстро.