Jakarta RESTful Web Services


Jakarta RESTful Web Services, is a Jakarta EE API specification that provides support in creating web services according to the Representational State Transfer architectural pattern. JAX-RS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients and endpoints.
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 as a web resource. The annotations use the Java package javax.ws.rs. 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.
In January 2011 the JCP formed the JSR 339 expert group to work on JAX-RS 2.0. The main targets are a common client API and support for Hypermedia following the HATEOAS-principle of REST. In May 2013, it reached the Final Release stage.
On 2017-08-22 JAX-RS 2.1 specification final release was published.
Main new supported features include
server-sent events,
reactive clients,
and JSON-B.

Implementations

Implementations of JAX-RS include: