- Source: Jakarta RESTful Web Services
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. 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 (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). They include:
@Path specifies the relative path for a resource class or method.
@GET, @PUT, @POST, @DELETE and @HEAD specify the HTTP request type of a resource.
@Produces specifies the response Internet media types (used for content negotiation).
@Consumes specifies the accepted request Internet media types.
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
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.
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:
Apache CXF, an open source Web service framework
Jersey, the reference implementation from Sun (now Oracle)
RESTeasy, JBoss's implementation
Restlet
WebSphere Application Server from IBM:
Version 7.0: via the "Feature Pack for Communications Enabled Applications"
Version 8.0 onwards: natively
WebLogic Application Server from Oracle, see notes
Apache Tuscany (http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html), discontinued
Cuubez framework (https://web.archive.org/web/20190707005602/http://cuubez.com/)
Everrest, Codenvy's Implementation
Jello-Framework, Java Application Framework optimized for Google App Engine, including a powerful RESTful engine and comprehensive Data Authorization model.
Apache TomEE, an addition to Apache Tomcat
References
Hadley, Marc and Paul Sandoz, eds. (September 17, 2009). JAX-RS: Java API for RESTful WebServices (version 1.1), Java Community Process
External links
Official website
= Tutorials
=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/
Kata Kunci Pencarian:
- Jakarta RESTful Web Services
- Jakarta Servlet
- Jakarta EE
- Java XML
- Jakarta Enterprise Beans
- Web framework
- Eclipse Jersey
- Spring Framework
- Java (programming language)
- Sam Ruby