REST теперь стал стандартным способом разработки веб-сервисов, а когда дело доходит до Java, доступно множество фреймворков и библиотек, например JAX-RS, Restlet, Jersey, RESTEasy, Apache CFX и т. Д., Но я рекомендую разработчикам Java использовать Spring MVC для разработки веб-сервисов RESTful.

Некоторые из вас могут спросить: зачем использовать Spring MVC Framework для разработки веб-сервисов RESTful на Java? Каковы преимущества и почему он лучше других доступных фреймворков и библиотек?

Что ж, я думаю, что наиболее важной причиной использования Spring для разработки веб-службы RESTful является то, что вы можете использовать свой опыт Spring MVC для разработки веб-служб RESTful, и вам не нужно изучать новую структуру или библиотеку, что означает вы можете быстро развернуть свой REST API.

Это одно из самых больших преимуществ, то есть использование вашего многолетнего опыта работы с Spring MVC для представления вашего приложения в виде REST API.

Другая причина в том, что Spring имеет отличную поддержку для разработки веб-сервисов RESTful.

В последних двух версиях, начиная с Spring версии 3.0, он предоставил множество улучшений для Spring MVC, чтобы обеспечить первоклассную поддержку REST. Он предоставил специальные аннотации, например @RestController и @ResponseStatus, чтобы сделать разработку ресурсов RESTful еще проще в Spring 4.0.

Это также не только поможет вам создавать веб-службы RESTful, но также предоставляет классы для использования ресурсов REST, например вы можете использовать класс RestTemplate для использования ресурсов RESTful.

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

7 причин использовать Spring для создания веб-сервисов RESTful на Java

Как я уже говорил в первом абзаце, мы можем использовать Spring MVC для создания и использования веб-сервисов RESTful. Теперь давайте рассмотрим эту поддержку более подробно, чтобы вы могли использовать ее наилучшим образом и быстро разработать сервисы RESTful, которые вам всегда были нужны.

1. В Spring MVC контроллер может обрабатывать запросы для всех методов HTTP, что является основой веб-служб RESTful. Например, вы можете обрабатывать метод GET для выполнения операций чтения, методы POST для создания ресурсов, методы PUT для обновления ресурсов и методы DELETE для удаления ресурсов с сервера.

Начиная с Spring 3.2, вы также можете обрабатывать запросы PATCH. Кстати, если вы не знакомы со средой Spring MVC, вам следует сначала взглянуть на нее; Spring MVC для начинающих - хорошее место для начала.

2. В случае REST представление данных очень важно, поэтому Spring MVC позволяет вам полностью обойти рендеринг на основе представления с помощью аннотации @ResponseBody и различных HttpMessgeConverter реализаций.

Используя это, вы можете напрямую отправить ответ клиенту, например ресурсы, которые нужны клиентам, а также в желаемом формате. См. Здесь, чтобы узнать больше об аннотациях HttpMessageConvert и @ResponseBody.

3. В выпуске Spring 4.0 добавлена ​​специальная аннотация @RestController, чтобы упростить разработку веб-сервисов RESTful.

Если вы аннотируете свой класс контроллера, используя @RestController вместо @Controller, то Spring применяет диалоги сообщений ко всем методам обработчика в контроллере.

Это означает, что вам не нужно аннотировать каждый метод аннотацией @ResponseBody. Это также делает ваш код намного чище.

4. Одно из основных различий между веб-службой REST и обычным веб-приложением заключается в том, что ресурс передачи REST идентифицирует данные в самом URI, например /messages/101, тогда как веб-приложения обычно используют параметр запроса, например /messages?Id=101.

Если вы помните, мы используем @RequestParam для получения значения этих параметров запроса, но, не беспокойтесь, Spring MVC также предоставляет аннотацию @PathVariable, которая может извлекать данные из URL-адреса. Это позволяет контроллеру обрабатывать запросы для параметризованных URL-адресов.

5. Еще одним ключевым аспектом веб-служб RESTful является представление, что означает, что один и тот же ресурс может быть представлен в разных форматах, например, JSON, XML, HTML и т. д. К счастью, Spring предоставляет несколько реализаций представлений и преобразователей представлений для отображения данных в виде JSON. , XML и HTML .

Например, ContentNegotiatingViewResolver может посмотреть на расширение файла запросов или заголовок Accept, чтобы узнать правильное представление ресурса для клиента.

6. Подобно аннотации @ResponseBody, которая используется для преобразования ответа в формат, который хочет клиент (с помощью HttpMessageConverts), Spring MVC также предоставляет аннотацию @RequestBody, которая использует HttpMethodConverter реализации для преобразования входящих данных HTTP в объекты Java, передаваемые в метод обработчика контроллера.

Если вы не знакомы с методами обработчика и Spring MVC в целом, вы также можете проверить 3 способа изучить Spring MVC.

7. Структура Spring также предоставляет шаблонный класс RestTemplate, который похож на JdbcTemplate и JmsTemplate, который может потреблять ресурсы REST. Вы можете использовать этот класс для тестирования своего веб-сервиса RESTful или разработки клиентов REST.

Это были некоторые из важных функций инфраструктуры Spring MVC, которые помогают в разработке веб-сервисов RESTful. Как я сказал ранее, самая важная причина, по которой я выбрал Spring для разработки ресурсов RESTful, заключается в том, что я могу использовать свои существующие знания о фреймворке, что означает отсутствие крутой кривой обучения.

Если вы посмотрите на это с высокого уровня, разработка сервисов RESTful не сильно отличается от разработки веб-приложения.

Фундаментальное отличие состоит в том, что в первом случае мы в основном имеем дело с пользователями-людьми, тогда как в случае REST вам приходится иметь дело с пользователями, не являющимися людьми, в основном с богатыми клиентами JavaScript и мобильными приложениями.

Это ключевое различие затем вызывает другие отличия, например представление данных в формате JSON или XML вместо HTML, что подходит для пользователей-людей, но не для систем, не являющихся людьми. Если вы хотите узнать больше, прежде чем приступить к разработке веб-сервисов RESTful производственного уровня с использованием Spring, курс REST with Spring - хорошее место для начала.

Другие Spring и ресурсы REST, которые могут вам понравиться

Как создать микросервисы с помощью Spring Cloud?
Микросервисы с Spring Boot и Spring Cloud
Разница между Restlet, Jersey и RESTEasy в Java?
Какая польза от DispatcherServlet в Spring MVC?
Как включить безопасность Spring в веб-приложении Java?
Spring в действии, Крейг Уоллс
Spring Framework 5: от новичка до гуру

Спасибо, что прочитали эту статью, если вам нравятся эти причины для разработки веб-сервисов RESTful с использованием Spring, поделитесь, пожалуйста, со своими друзьями и коллегами. Если у вас есть какие-либо вопросы или отзывы, напишите нам.

Первоначально опубликовано на сайте javarevisited.blogspot.com 29 января 2018 г.