Representational State Transfer (REST) describes a stateless client-server architecture in which web services are treated as resources that can be identified by their URLs.
In RESTful systems, servers use URIs to expose resources, and clients use the four HTTP
verbs GET, POST, PUT, and DELETE to
access them. As they receive a representation of a resource, client applications enter a
state. When they access another resource, typically by following a link, client applications
change their state.
Because RESTful systems can take full advantage of HTTP's scalability features, such as caching and proxies, they are highly scalable and highly flexible. Changes made to servers do not impact clients because:
Resources are accessed and manipulated using the four HTTP verbs.
Resources are exposed using a URI.
Resources are represented using standard grammars.
Today's Web architecture is an example of a system designed on RESTful principles. Web browser clients access resources hosted on Web servers. The resources are represented using HTML or XML grammars understood and navigable by all web browsers.
Fuse ESB Enterprise supports JAX-RS (JSR-311), the Java API for RESTful Web Services. JAX-RS provides a standard way to build RESTful services in Java, using annotations to simplify the development and deployment of web service clients and endpoints.
Using JAX-RS to develop restful services has several benefits:
The URI bindings are local to the resource beans, which can be arbitrarily nested. This feature simplifies refactoring.
Loose coupling between providers and the objects returned by the resource methods makes it easy to drop in support for new representations, without having to change the code of the resource beans (or controllers). Instead, you need only modify an annotation.
Static typing can be useful when binding URIs and parameters to the controller. For example, using
String,integer, andDatefields frees the controller from having to explicitly convert parameter values.
For more information, see Overview in Developing RESTful Web Services.
JavaScript Object Notation (JSON), a lightweight data format for data exchange, is provided as an alternative to JAXB. JSON is a text-based and human-readable format for representing simple data structures and associative arrays (called objects).
For more information, see JSON home.
![]() | Note |
|---|---|
In the Major Widgets use case, JAX-RS is used to implement a web-based order entry form that customers use to make on-line orders. See Major Widgets Phase One Solution. |






![[Note]](imagesdb/note.gif)


