You can use Java™ API for RESTful Web Services (JAX-RS) to develop services that follow Representational State Transfer (REST) principles. RESTful services are based on manipulating resources. Resources can contain static or dynamically updated data. By identifying the resources in your application, you can make the service more useful and easier to develop.
You can use Java API for RESTful Web Services (JAX-RS) to develop services that follow Representational State Transfer (REST) principles. Using JAX-RS, development of RESTful services is simplified.
XML is a common media format that RESTful services consume and produce. To deserialize and serialize XML, you can represent requests and responses by Java Architecture for XML Binding (JAXB) annotated objects.
JavaScript Object Notation (JSON) is a common media format that RESTful services consume and produce. You can use this lightweight data-interchange format that is based on the object-literal notation of JavaScript to exchange data.
You can use the Atom Syndication Format (Atom) to format web feeds, which communicate news and updates of episodic information about websites. Using Atom content in JAX-RS applications, you can take advantage of web content syndication that provides the same decentralized, dynamic mechanisms for adding new metadata and content supported by RSS, but does so in a way that helps protect core interoperability between implementations.
Even though the Java API for RESTful Web Services (JAX-RS) runtime environment includes several entity providers for handling serialization from and deserialization to Java types, it does not support all possible media types. You can develop a custom entity provider to handle binding Java types to message bodies.
One of the advantages of RESTful applications is the ability to return different representations of resources. With Representational State Transfer (REST), clients and servers can exchange resources of the same media type or use differing media types. Content negotiation enables clients and servers to agree on the content format that is used to exchange data.
Java API for RESTful Web Services (JAX-RS) provides different types of context to resource classes and providers. You can use context objects to access request information such as discovering the HTTP headers that are sent as part of the request. Context objects also provide convenience methods for evaluating a request and building an appropriate response.
If you have enterprise JavaBeans (EJB) applications, you can expose a RESTful interface to the enterprise bean using Java API for RESTful Web Services (JAX-RS). By implementing JAX-RS annotated enterprise beans, you keep the EJB functionality including transaction support, injection of Java EE components and resources, and other EJB session bean capabilities.
Java API for RESTful Web Services (JAX-RS) root resources and providers can be used in a Java Contexts and Dependency Injection (JCDI) enabled web archive (WAR). Simply add a valid WEB-INF/beans.xml file to your WAR file and any JAX-RS root resources and providers that are valid JCDI beans can use JCDI functionality.
You can implement handlers on the server-side of a Java API for RESTful Web Services (JAX-RS) application to enhance request and response processing.
Using multipart messages, servers and clients can transmit multiple messages using a single message. Multipart messages are useful when both the client and server need to send multiple requests but want to save the cost of sending and receiving entire HTTP request and responses for each part.
A frequently used content type for submitting files through an HTML form is multipart/form-data. The IBM® implementation of Java API for RESTful Web Services (JAX-RS) greatly simplifies the processing of such data by automatically splitting the parts and automatically decoding them. If such automatic processing is not desired, the resource may instead receive the parts in an object so processing of the parts is under the complete control of the resource method.
The IBM runtime environment for Java API for RESTful Web Services (JAX-RS) is driven by a servlet derived from the Apache Wink project. Within the WebSphere® Application Server environment, the lifecycle of servlets is managed in the web container. Therefore, the security services offered by the web container are applicable to REST resources that are deployed in WebSphere Application Server.
Web Application Description Language (WADL) is a description language for HTTP-based applications. It is currently a World Wide Web Consortium (W3C) Member Submission. WADL can be used by programs to give information about the service in a machine-processable method. For instance, you can use an Extensible Stylesheet Transformation (XSLT) document to transform the WADL documentation by using a custom XSLT and a XSLT processor.
You can use the Apache Wink REST client as a client that can be run to send requests to your JAX-RS application.
Instead of using the Apache Wink REST client inside a server application, you can use the Thin Client for JAX-RS that is provided with WebSphere Application Server as a stand-alone thin client to send requests to your RESTful service. The Thin Client for JAX-RS is a stand-alone Java SE 6 client environment that enables running unmanaged JAX-RS RESTful web services client applications in a non-WebSphere environment to invoke JAX-RS RESTful web services that are hosted by the application server.