Jakarta RESTful Web Services

Last updated
Jakarta RESTful Web Services (JAX-RS)
Original author(s) Sun Microsystems
Developer(s) Eclipse Foundation
Stable release
3.1.9 / October 17, 2024;5 months ago (2024-10-17)
Repository
Written in Java
Operating system Cross-platform
Platform Java
Type Application framework
License EPL 2.0 or GPL v2 w/Classpath exception
Website projects.eclipse.org/projects/ee4j.jaxrs OOjs UI icon edit-ltr-progressive.svg

Jakarta RESTful Web Services, (JAX-RS; formerly Java API for RESTful Web Services) is a Jakarta EE API specification that provides support in creating web services according to the Representational State Transfer (REST) architectural pattern. [1] JAX-RS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients and endpoints.

Contents

From version 1.1 on, JAX-RS is an official part of Java EE 6. A notable feature of being an official part of Java EE is that no configuration is necessary to start using JAX-RS. For non-Java EE 6 environments a small entry in the web.xml deployment descriptor is required.

Specification

JAX-RS provides some annotations to aid in mapping a resource class (a POJO) as a web resource. The annotations use the Java package jakarta.ws.rs (previously was javax.ws.rs but was renamed on May 19, 2019 [2] ). They include:

In addition, it provides further annotations to method parameters to pull information out of the request. All the @*Param annotations take a key of some form which is used to look up the value required.

JAX-RS 2.0

In January 2011 the JCP formed the JSR 339 expert group to work on JAX-RS 2.0. The main targets are (among others) a common client API and support for Hypermedia following the HATEOAS-principle of REST. In May 2013, it reached the Final Release stage. [3]

On 2017-08-22 JAX-RS 2.1 [4] specification final release was published. Main new supported features include server-sent events, reactive clients, and JSON-B. [5]

Implementations

Implementations of JAX-RS include: [6]

References

  1. Hadley, p. 1.
  2. "Rename package commit on Github". GitHub .
  3. "JSR 339: JAX-RS 2.0: The Java API for RESTful Web Services". Java Community Process .
  4. "JSR 370: Java API for RESTful Web Services (JAX-RS 2.1) Specification". Java Community Process .
  5. "JSR 367: Java API for JSON Binding (JSON-B)". Java Community Process .
  6. Little, Mark (October 1, 2008). "A Comparison of JAX-RS Implementations".

Tutorials