JAX-RS

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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