WAS v8.5 > WebSphere applications > Web services

Overview of IBM JAX-RS

Java API for RESTful Web Services (JAX-RS) is a programming model that provides a mechanism for developing services that follow Representational State Transfer (REST) principles. Using JAX-RS, development of RESTful services is simplified.

JAX-RS is a collection of interfaces and Java annotations that simplifies development of server-side REST applications. By using JAX-RS technology, REST applications are simpler to develop, simpler to consume, and simpler to scale when compared to other types of distributed systems. WAS v8.5 supports a Java API for developing REST-based services. The IBM implementation of JAX-RS provides an implementation of the JAX-RS specification.

To develop RESTful services using IBM JAX-RS, it is assumed that you are familiar with basic REST principles and a basic knowledge of standard technologies, such as HTTP, and XML.

REST and JAX-RS

Representational State Transfer, also known as REST, is an architectural style that uses multiple standard technologies like HTTP, XML, ATOM, and HTML. REST is used to define flexible applications based on the notion of resources. A resource is simply any data to share on the web that we can identify by a Uniform Resource Identifier (URI).

JAX-RS is a specification defined by JSR-311 in the Java Community Process. Some of the key features provided by JAX-RS include:

  • A collection of annotations for declaring resource classes and the data types they support
  • A set of interfaces that allow application developers to gain access to the runtime context
  • An extensible framework for integrating custom content handlers

Apache Wink and the IBM implementation of JAX-RS

Wink is a project developed within the Apache Software Foundation that provides a lightweight framework for developing RESTful applications. Wink supports REST services implemented using JAX-RS to describe the resources on the server. However, a client API is also provided by Wink. This client API is specific to the Wink runtime environment because there is no JAX-RS defined client API.

The IBM implementation of JAX-RS is an extension of the base Wink 1.1 runtime environment. IBM JAX-RS includes the following features:

  • JAX-RS 1.1 server runtime
  • Stand-alone client API with the option to use Apache HttpClient 4.0 as the underlying client
  • Built-in entity provider support for JSON4J
  • An Atom JAXB model in addition to Apache Abdera support
  • Multipart content support
  • A handler system to integrate user handlers into the processing of requests and responses

Now, you are ready to start learning more about implementing RESTful services using IBM JAX-RS.

  • For an example of how to get a JAX-RS web application running quickly, see the quick start documentation.
  • To learn about planning considerations for the JAX-RS application, see the planning to use JAX-RS to enable RESTful services documentation.
  • To learn more about developing, packaging, and deploying JAX-RS web services, see the implementing JAX-RS web applications documentation. Additional information is provided for implementing JAX-RS web applications that use XML, JSON, or Atom content formats.


Related


Planning to use JAX-RS to enable RESTful services
Implement JAX-RS web applications
Use XML content in JAX-RS application requests and responses
Use JSON content in JAX-RS application requests and responses
Use Atom content in JAX-RS application requests and responses


Reference:

Web services specifications and APIs


Related information:

JAX-RS: Java API for RESTful Web Services (JSR 311)

Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000, Chapter 5

Hypertext Transfer Protocol -- HTTP/1.1 specification


+

Search Tips   |   Advanced Search