Jakarta RESTful Web Services, (JAX-RS; раніше ) — специфікація API Jakarta EE, яка надає підтримку у створенні вебслужб відповідно до архітектурного шаблону "передача репрезентативного стану" () (REST). JAX-RS використовує анотації, введені в Java SE 5, для спрощення розробки та розгортання клієнтів вебсервісу та кінцевих точок.
Починаючи з версії 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 року він досяг остаточного етапу випуску.
22.08.2017 був опублікований остаточний випуск специфікації JAX-RS 2.1 . Основні нові підтримувані функції включають передані сервером події, реактивні клієнти та JSON-B .
Реалізації Реалізації JAX-RS включають:
Apache CXF, фреймворк вебслужби з відкритим кодом Jersey, довідкова реалізація від 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 Application Framework, оптимізована для Google App Engine, включаючи потужний движок RESTful та повну модель авторизації даних.
Примітки
Посилання
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/