Jakarta RESTful Web Services ( JAX-RS ; ранее Java API для RESTful Web Services) - это спецификация Jakarta EE API, которая обеспечивает поддержку при создании веб-сервисов в соответствии с архитектурным шаблоном передачи репрезентативного состояния (REST). [1] JAX-RS использует аннотации , представленные в Java SE 5 , для упрощения разработки и развертывания клиентов и конечных точек веб-служб.
Автор (ы) оригинала | Sun Microsystems |
---|---|
Разработчики) | Фонд Затмения |
Стабильный выпуск | 3.0 / 30 июня 2020 г . |
Репозиторий | |
Написано в | Ява |
Операционная система | Кроссплатформенность |
Платформа | Ява |
Тип | Фреймворк приложения |
Лицензия | EPL 2.0 или GPL v2 с исключением пути к классам |
Веб-сайт | проекты |
Начиная с версии 1.1 JAX-RS является официальной частью Java EE 6. Примечательной особенностью того, что он является официальной частью Java EE, является то, что для начала использования JAX-RS не требуется никакой настройки. Для сред, отличных от Java EE 6, требуется небольшая запись в дескрипторе развертывания web.xml .
Технические характеристики
JAX-RS предоставляет некоторые аннотации для помощи в отображении класса ресурса ( POJO ) как веб-ресурса. В аннотациях используется пакет Java javax.ws.rs
. Они включают:
@Path
указывает относительный путь для класса или метода ресурса.@GET
,@PUT
,@POST
,@DELETE
И@HEAD
указать тип запроса HTTP ресурса.@Produces
определяет ответные типы Интернет-носителей (используемые для согласования содержимого ).@Consumes
указывает принятые типы Интернет-носителей запроса.
Кроме того, он предоставляет дополнительные аннотации к параметрам метода для извлечения информации из запроса. Все @*Param
аннотации имеют ключ той или иной формы, который используется для поиска требуемого значения.
@PathParam
связывает параметр метода с сегментом пути.@QueryParam
связывает параметр метода со значением параметра HTTP- запроса .@MatrixParam
связывает параметр метода со значением параметра матрицы HTTP .@HeaderParam
связывает параметр метода со значением заголовка HTTP .@CookieParam
связывает параметр метода со значением cookie .@FormParam
связывает параметр метода со значением формы .@DefaultValue
указывает значение по умолчанию для вышеуказанных привязок, если ключ не найден.@Context
возвращает весь контекст объекта (например@Context HttpServletRequest request
).
JAX-RS 2.0
В январе 2011 года JCP сформировал группу экспертов JSR 339 для работы над JAX-RS 2.0. Основные задачи являются (среди прочих) общего клиентского API и поддержки гипермедиа после HATEOAS -принципа из REST . В мае 2013 года он вышел на стадию финального релиза. [2]
22 августа 2017 г. была опубликована финальная версия спецификации JAX-RS 2.1 [3] . Основные новые поддерживаемые функции включают отправленные сервером события , реактивные клиенты и JSON-B. [4]
Реализации
Реализации JAX-RS включают: [5]
- Apache CXF , фреймворк веб-сервисов с открытым исходным кодом
- Джерси , эталонная реализация от Sun (теперь Oracle )
- Resteasy , JBoss реализация «ю.ш.
- Рестлет
- WebSphere Application Server от IBM :
- Версия 7.0: через «Пакет функций для приложений с поддержкой связи»
- Версия 8.0 и новее: изначально
- Сервер приложений WebLogic от Oracle , см. Примечания
- Apache Tuscany ( http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html ), выпуск прекращен
- Фреймворк Cuubez ( https://web.archive.org/web/20190707005602/http://cuubez.com/ )
- Эверрест , реализация Коденви
- Jello-Framework , платформа приложений Java, оптимизированная для Google App Engine, включая мощный механизм RESTful и комплексную модель авторизации данных.
Рекомендации
- ^ Хэдли, стр. 1.
- ^ «JSR 339: JAX-RS 2.0: API Java для веб-служб RESTful» . Процесс сообщества Java .
- ^ «JSR 370: Спецификация Java API для веб-служб RESTful (JAX-RS 2.1)» . Процесс сообщества Java .
- ^ «JSR 367: Java API для привязки JSON (JSON-B)» . Процесс сообщества Java .
- ^ Литтл, Марк (1 октября 2008 г.). «Сравнение реализаций JAX-RS» .
- Хэдли, Марк и Пол Сандос, ред. (17 сентября 2009 г.). JAX-RS: Java API для RESTful WebServices (версия 1.1), процесс сообщества Java
Внешние ссылки
- Официальный веб-сайт
Учебники
- https://javabrains.io/courses/javaee_jaxrs/
- http://docs.oracle.com/javaee/6/tutorial/doc/giepu.html
- http://www.vogella.com/tutorials/REST/article.html
- http://www.mkyong.com/tutorials/jax-rs-tutorials/
- http://www.coderpanda.com/jax-rs-tutorial/
- http://howtodoinjava.com/restful-web-service/