Что такое хороший технологический стек для веб-приложения Java с поддержкой REST? - PullRequest
3 голосов
/ 06 марта 2011

Вечер всех:)

Я ищу создание веб-приложения на Java. Я предполагаю, что он будет использовать Spring Web MVC и JSP, однако я хотел бы представить некоторые функции в качестве вызовов REST, чтобы я мог создать клиент Android.

Предлагает ли весна что-нибудь, чтобы помочь мне в этой области? Как сохранить код REST и код веб-интерфейса отдельно, но при этом не нужно поддерживать по существу две версии моего приложения (одну для Интернета, одну для клиентов REST).

Не ищите кормления с ложечки, просто несколько указателей того, где я должен начать читать.

Ответы [ 6 ]

5 голосов
/ 07 марта 2011

Как уже упоминали другие, Spring имеет довольно хорошую встроенную поддержку REST.В сочетании с аннотациями это позволяет действительно просто настроить RESTful API.Spring может быть сконфигурирован с различными распознавателями представлений , которые могут автоматически отвечать другим представлением данных в зависимости, например, от заголовка Accept.Таким образом, вы можете автоматически возвращать JSON или JSP из тех же данных, см. ContentNegotiatingViewResolver .Затем ваш контроллер и модель могут быть общими и реализованы один раз, оставляя работу на уровне представления.

Я использовал этот подход прежде, чем возвращать JSON, когда запрос был через AJAX и представление JSP, построенное с тем жеданные при доступе из браузера.

4 голосов
/ 07 марта 2011

Джерси довольно прост, хорошо работает и служит эталонной реализацией для загрузки. Плюс, у него есть хорошая поддержка REST-клиентов, большая часть которого, вероятно, войдет в спецификацию JAX-RS.

С точки зрения объединения этого с Spring MVC, я бы порекомендовал вам убедиться, что вы смоделировали свое приложение так, чтобы у вас были фасады (классы обслуживания), которые предоставляют все основные функциональные возможности, которые вам нужны, а затем просто ссылались на них по мере необходимости в MVC код или код REST. Вы не должны дублировать бизнес-логику

4 голосов
/ 07 марта 2011

Джерси - довольно изящный инструмент.Он хорошо интегрируется с такими инструментами, как Spring, Guice и Jackson, чтобы предоставить вам довольно удобный способ создания ресурсов RESTful.

2 голосов
/ 06 марта 2011

Вы можете сделать это с помощью Spring 3.0.В Spring 3.0 появилась возможность указать @PathVariable s для извлечения значений из пути URL (ранее это было непросто в Spring MVC).

Вы также можете использовать @RequestMapping для указания метода HTTP(s) каждый метод в вашем контроллере должен отвечать.

Я также использую Spring Security для реализации функциональности типа ключа API.Таким образом, вы можете ограничить доступ к своему API так, чтобы его могли легко реализовать клиенты REST.Мне пришлось расширить org.springframework.web.filter.GenericFilterBean и добавить правильную аутентификацию, подобную этой

SecurityContextHolder.getContext().setAuthentication(apiKeyAuth)
1 голос
/ 07 марта 2011

Apache CXF хорошо интегрируется с Spring и предлагает множество способов предоставления сервисов.Из раздела обзора домашней страницы CXF:

CXF помогает создавать и разрабатывать службы с использованием API-интерфейсов программирования внешнего интерфейса, таких как JAX-WS и JAX-RS.Эти сервисы могут использовать различные протоколы, такие как SOAP, XML / HTTP, RESTful HTTP или CORBA, и работать с различными транспортными средствами, такими как HTTP, JMS или JBI.

1 голос
/ 06 марта 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...