2008-09-15 1 views
16

Я ищу легкую версию REST для веб-приложения Java, которое я разрабатываю.REST в Java

Я посмотрел RESTlet (www.restlet.org) и плагин REST для Struts 2, но я не решил. Я склоняюсь к RESTlet, так как кажется, что он легче.

Кто-нибудь реализовал слой RESTful без каких-либо фреймворков или фреймворков?

Любые проблемы с производительностью, которые вы видели из-за нового веб-уровня?

Внесли ли REST в ваш проект неуправляемую или необоснованную сложность? (Некоторая сложность понятна, но я имею в виду, что я просто перехитрил ваш проект, просто добавив REST) ​​

+0

См. Http://meta.stackexchange.com/questions/71068/a-few-possible-duplicate-questions-about-java-rest-what-should-we-do – ripper234 2010-11-27 18:36:35

ответ

3

Ну, я использовал Enunciate совсем немного. Он использует простые аннотации для предоставления конечных точек REST и/или SOAP.

http://enunciate.codehaus.org

Plus, Райан Хитон всегда оказывал поддержку первоклассную для вещей тоже.

1

Я работаю над API REST для gliffy.com, и мы закончили свой собственный. Мы не хотели приносить Struts 2, Spring или любые другие рамки. Я посмотрел на RESTLet и нашел его невероятно запутанным и сложным.

У Apache есть реализация спецификации JAX-RS, но она не доработана, а также имеет некоторые странности. Мы предварительно планируем открыть исходное решение, но это не на несколько месяцев.

Катиться самостоятельно легко. Спецификация Servlet дает вам все, что вам нужно, и вы можете легко подключиться к базе данных через Hibernate (см. http://www.naildrivin5.com/daveblog5000/?p=39 о том, как настроить JPA без использования EJB3).

1

Я нашел рестартер, чтобы быть действительно элегантной архитектурой. Я работаю в мире .net, поэтому для меня это не вариант, но я смог создать свою собственную инфраструктуру, следуя тем же основным принципам рестайла. Я нашел преобразование нашего WCF контракта на основе применения SOA для REST на основе один значительно упрощено применение,

3

Вы знаете, что есть новый JCP API для доступа RESTful Services, а также:

JAX-RS JCP311 https://jsr311.dev.java.net/

версия с открытым исходным кодом называется Project Джерси

+0

Джерси [1] - это реализация JSR-311. Он доступен для загрузки сам по себе или как часть Glassfish [3], сервера приложений с открытым исходным кодом Sun. Предстоящая версия релиза [4] также реализует JSR-311. [1] https://jersey.dev.java.net/ [2] http://jsr311.dev.java.net/ [3] http://glassfish.dev.java.net/ [4] http://restlet.org/ – 2010-01-10 00:02:20

20

Я огромный поклонник JAX-RS - Я думаю, что они проделали большую работу с этой спецификацией. Я использую его в ряде проектов, и с ним было приятно работать.

JAX-RS позволяет создавать ресурсы REST с помощью POJO с простыми аннотациями, относящимися к сопоставлениям URI, HTTP-методам и согласованию содержимого, которые хорошо интегрированы с инъекцией зависимости. Нет сложных API-интерфейсов для изучения; требуются только основные концепции REST (URI, коды заголовков/ответов и согласование контента). FWIW JAX-RS довольно Rails-ish с точки зрения контроллера

Существует ряд вариантов реализации JAX-RS - см. this thread for a discussion.

Моя личная рекомендация состоит в том, чтобы использовать Jersey, поскольку он получил самое большое, самое активное сообщество за его пределами, имеет лучшие функции на момент написания (поддержка WADL, неявные представления, интеграция с весной, хороший API-интерфейс REST); хотя, если вы используете JBoss/SEAM, вы можете обнаружить, что RESTeasy интегрируется немного лучше.

8

Я большой поклонник Restlet, но я обычно использую его для реализации приложений, основной задачей которых является be веб-сервис RESTful. Похоже, вы хотите добавить RESTful API в существующее приложение. Если это так, то подход JAX-RS (или Enunciate's), основанный на аннотациях, может быть лучше подходит для вашего проекта.

Что касается Restlet, могу сказать, что я был очень впечатлен разработчиками и сообществом; они очень активны, активны, активны, отзывчивы и привержены устойчивой, эффективной, надежной и эффективной основе. Мой единственный любимый аспект структуры заключается в том, что это основополагающая реализация парадигмы REST; поэтому не существует несоответствия импеданса между внешним API-интерфейсом приложения Restlet и внутренней реализацией. Мне также очень нравится, насколько это гибко - он может работать внутри контейнера/сервера Java-приложений, таких как JBoss, Tomcat, Jetty и т. Д., Или автономно, со встроенной библиотекой HTTP-сервера.