RESTful – Representational State Transfer
RESTful Web services are an alternative to SOAP. It is designed to be simple, lightweight and fast, with the following constraint’s –
- Resources – Easily understood directory structure URI
- Uniform Interface – GET, POST, PUT and DELETE
- Messages – Can return any format – HTML, XML, plain text, …
- Stateless – Interactions not stored
Common Operations
Consider the example in my apache cxf jax rs post. The GET, PUT and PATCH operations are idempontent. This means that the same parameters should return the same results
GET – Select – Idempotent
[sourcecode]GET /customerservice/customers/1[/sourcecode]
POST – Create
[sourcecode]POST /customerservice/customers[/sourcecode]
PUT – Update or Create – Idempotent
[sourcecode]PUT /customerservice/customers[/sourcecode]
PATCH – Update only – Idempotent
[sourcecode]PATCH /mypath/1[/sourcecode]
DELETE – Remove record
[sourcecode]DELETE /customerservice/customers/1[/sourcecode]
HATEOAS – Hypermedia as the Engine of Application State
HATEOAS is a further constraint on RESTful services. It basically requires a response to return the location of the data. For example –
[sourcecode]
GET customerservice/customers/1 HTTP/1.1 HTTP/1.1 200 OK
<?xml version="1.0"?>
<customer>
<id>1</id>
</customer>
[/sourcecode]
Would become –
[sourcecode lang=”xml”]
<?xml version="1.0"?>
<customer>
<id>1</id>
<link rel="self" href="/customerservice/customers/1" />
</customer>
[/sourcecode]
References
http://en.wikipedia.org/wiki/Representational_state_transfer
http://en.wikipedia.org/wiki/HATEOAS
http://docs.oracle.com/javaee/6/tutorial/doc/gijqy.html
https://www.javabullets.com/2015/01/15/apache-cxf-jax-rs/
https://github.com/spring-projects/spring-hateoas
Like this:
Like Loading...