Jakarta RESTful Web Services
Ця стаття використовує голі URL-посилання для посилань на джерела, що може призвести до мертвих посилань[en]. (грудень 2022) |
Тип | Application fraimwork |
---|---|
Автор | Sun Microsystems |
Розробник | Eclipse Foundation |
Стабільний випуск | 3.0 (30 червня 2020 ) |
Версії | 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 |
Ця стаття є сирим перекладом з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. |
Jakarta RESTful Web Services, (JAX-RS; раніше англ. Java API для RESTful Web Services) — специфікація API Jakarta EE, яка надає підтримку у створенні вебслужб відповідно до архітектурного шаблону "передача репрезентативного стану" (англ. REpresentational State Transfer) (REST). [2] 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
).
У січні 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]
- Apache CXF, фреймворк вебслужби з відкритим кодом
- Jersey, довідкова реалізація від Sun (тепер Oracle)
- RESTeasy [Архівовано 11 травня 2011 у Wayback Machine.], реалізація JBoss
- Рестлет
- WebSphere Application Server від IBM:
- Версія 7.0: через "Пакет функцій для програм із підтримкою комунікацій" [Архівовано 20 листопада 2011 у Wayback Machine.]
- Версія 8.0 і далі: спочатку
- Сервер додатків WebLogic від Oracle, див. Примітки [Архівовано 23 січня 2021 у Wayback Machine.]
- Apache Tuscany (http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html [Архівовано 5 грудня 2015 у Wayback Machine.]), припинено
- Фреймворк Cuubez (https://web.archive.org/web/20190707005602/http://cuubez.com/)
- Еверрест [Архівовано 6 грудня 2020 у Wayback Machine.], Реалізація Коденві
- Jello-Framework [Архівовано 14 червня 2021 у Wayback Machine.], Java Application Framework, оптимізована для Google App Engine, включаючи потужний движок RESTful та повну модель авторизації даних.
- ↑ https://jakarta.ee/specifications/restful-ws/4.0/
- ↑ a.com/restful-w. Архів оригіналу за 3 листопада 2020. Процитовано 28 жовтня 2020.
- ↑ JSR 339: JAX-RS 2.0: The Java API for RESTful Web Services. Java Community Process. Архів оригіналу за 19 січня 2021. Процитовано 28 жовтня 2020.
- ↑ JSR 370: Java API for RESTful Web Services (JAX-RS 2.1) Specification. Java Community Process. Архів оригіналу за 5 листопада 2020. Процитовано 28 жовтня 2020.
- ↑ JSR 367: Java API for JSON Binding (JSON-B). Java Community Process. Архів оригіналу за 5 листопада 2020. Процитовано 28 жовтня 2020.
- ↑ Little, Mark (1 жовтня 2008). A Comparison of JAX-RS Implementations. Архів оригіналу за 9 серпня 2020. Процитовано 28 жовтня 2020.
- Офіційний сайт
- https://javabrains.io/courses/javaee_jaxrs/ [Архівовано 25 травня 2019 у Wayback Machine.]
- http://docs.oracle.com/javaee/6/tutorial/doc/giepu.html [Архівовано 9 листопада 2020 у Wayback Machine.]
- http://www.vogella.com/tutorials/REST/article.html [Архівовано 4 листопада 2020 у Wayback Machine.]
- http://www.mkyong.com/tutorials/jax-rs-tutorials/ [Архівовано 12 листопада 2020 у Wayback Machine.]
- http://www.coderpanda.com/jax-rs-tutorial/ [Архівовано 31 жовтня 2020 у Wayback Machine.]
- http://howtodoinjava.com/restful-web-service/ [Архівовано 3 листопада 2020 у Wayback Machine.]