Jakarta RESTful Web Services

Summary

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.

Jakarta RESTful Web Services (JAX-RS)
Original author(s)Sun Microsystems
Developer(s)Eclipse Foundation
Stable release
3.0 / June 30, 2020; 3 years ago (2020-06-30)
Repository
  • github.com/eclipse-ee4j/jaxrs-api Edit this at Wikidata
Written inJava
Operating systemCross-platform
PlatformJava
TypeApplication framework
LicenseEPL 2.0 or GPL v2 w/Classpath exception
Websiteprojects.eclipse.org/projects/ee4j.jaxrs Edit this at Wikidata

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 edit

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.

  • @PathParam binds the method parameter to a path segment.
  • @QueryParam binds the method parameter to the value of an HTTP query parameter.
  • @MatrixParam binds the method parameter to the value of an HTTP matrix parameter.
  • @HeaderParam binds the method parameter to an HTTP header value.
  • @CookieParam binds the method parameter to a cookie value.
  • @FormParam binds the method parameter to a form value.
  • @DefaultValue specifies a default value for the above bindings when the key is not found.
  • @Context returns the entire context of the object (for example @Context HttpServletRequest request).

JAX-RS 2.0 edit

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 edit

Implementations of JAX-RS include:[6]

References edit

  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".
  • Hadley, Marc and Paul Sandoz, eds. (September 17, 2009). JAX-RS: Java API for RESTful WebServices (version 1.1), Java Community Process

External links edit

  • Official website  

Tutorials edit

  • https://javabrains.io/courses/javaee_jaxrs/ Archived 2019-05-25 at the Wayback Machine
  • 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/
  • https://www.javavogue.com/2015/03/java-jerseyjax-rs-tutorials/
  • http://howtodoinjava.com/restful-web-service/