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 г.