JAX-RS

В статье не хватает ссылок на источники (см. рекомендации по поиску).

Информация должна быть проверяема, иначе она может быть удалена. Вы можете отредактировать статью, добавив ссылки на авторитетные источники в виде сносок. (2 февраля 2020)

|

JAX-RS: Java API для веб-сервисов RESTful (JAX-RS) — это спецификация API языка программирования Java, которая обеспечивает поддержку при создании веб-сервисов в соответствии с архитектурным шаблоном передачи состояния представления (REST). JAX-RS использует аннотации, представленные в Java SE 5, для упрощения разработки и развертывания клиентов и конечных точек веб-служб.

Начиная с версии 1.1, JAX-RS является официальной частью Java EE 6\. Примечательной особенностью этого является тот факт, что не требуется никакой конфигурации чтобы начать использовать JAX-RS. Если Java EE 6 не применяется, то потребуется небольшая запись в дескрипторе развертывания `web.xml`.

## Спецификация

[править | править код]

JAX-RS предоставляет некоторые аннотации, помогающие сопоставить класс ресурса POJO (англ. Plain Old Java Object) как веб-ресурс. Аннотации находятся в пакете Java `javax.ws.rs` . Они включают:

* `@Path`указывает относительный путь для класса или метода ресурса.
* `@GET`, `@PUT`, `@POST`, `@DELETE` и `@HEAD`указывают метод HTTP-запроса.
* `@Produces`определяет MIME-типы ответа (используются для согласования контента).
* `@Consumes` указывает принимаемые в запросе MIME-типы.

Кроме того, JAX-RS предоставляет дополнительные аннотации к параметрам метода для извлечения информации из запроса. Все `@*Param`аннотации принимают ключ некоторой формы, который используется для поиска требуемого значения.

* `@PathParam` привязывает параметр метода к сегменту пути.
* `@QueryParam`привязывает параметр метода к значению параметра HTTP- запроса .
* `@MatrixParam`привязывает параметр метода к значению параметра матрицы HTTP .
* `@HeaderParam`привязывает параметр метода к значению заголовка HTTP .
* `@CookieParam`привязывает параметр метода к значению cookie .
* `@FormParam`привязывает параметр метода к значению формы .
* `@DefaultValue`указывает значение по умолчанию для вышеуказанных привязок, когда ключ не найден.
* `@Context`возвращает весь контекст объекта (например `@Context HttpServletRequest request`).