Jakarta RESTful Web Services, (JAX-RS; раніше англ. Java API для RESTful Web Services) — специфікація API Jakarta EE, яка надає підтримку у створенні вебслужб відповідно до архітектурного шаблону "передача репрезентативного стану" (англ. REpresentational State Transfer) (REST). [2] JAX-RS використовує анотації, введені в Java SE 5, для спрощення розробки та розгортання клієнтів вебсервісу та кінцевих точок.

Jakarta RESTful Web Services (JAX-RS)
Тип Application framework
Автор Sun Microsystems
Розробник Eclipse Foundation
Стабільний випуск 3.0 (30 червня 2020; 3 роки тому (2020-06-30))
Версії 4.0.0 (2 травня 2024)[1]
Платформа Java
Операційна система Cross-platform
Мова програмування Java
Ліцензія EPL 2.0 or GPL v2 w/Classpath exception
Репозиторій github.com/jakartaee/rest
Вебсайт projects.eclipse.org/projects/ee4j.jaxrs

Починаючи з версії 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 визначає MIME формати відповіді (використовуються для узгодження вмісту).
  • @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 та підтримка Hypermedia відповідно до HATEOAS- принципу REST. У травні 2013 року він досяг остаточного етапу випуску. [3]

22.08.2017 був опублікований остаточний випуск специфікації JAX-RS 2.1 [4]. Основні нові підтримувані функції включають передані сервером події, реактивні клієнти та JSON-B [5].

Реалізації

ред.

Реалізації JAX-RS включають: [6]

Примітки

ред.
  1. https://jakarta.ee/specifications/restful-ws/4.0/
  2. a.com/restful-w. Архів оригіналу за 3 листопада 2020. Процитовано 28 жовтня 2020.
  3. JSR 339: JAX-RS 2.0: The Java API for RESTful Web Services. Java Community Process. Архів оригіналу за 19 січня 2021. Процитовано 28 жовтня 2020.
  4. JSR 370: Java API for RESTful Web Services (JAX-RS 2.1) Specification. Java Community Process. Архів оригіналу за 5 листопада 2020. Процитовано 28 жовтня 2020.
  5. JSR 367: Java API for JSON Binding (JSON-B). Java Community Process. Архів оригіналу за 5 листопада 2020. Процитовано 28 жовтня 2020.
  6. Little, Mark (1 жовтня 2008). A Comparison of JAX-RS Implementations. Архів оригіналу за 9 серпня 2020. Процитовано 28 жовтня 2020.

Посилання

ред.