RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD...

Post on 26-Mar-2015

218 views 1 download

Transcript of RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD...

RESTFul Web ServicesThe Easy Way

What is REST?

•Representational State Transfer•Maps your CRUD actions to HTTP verbs

Action Verb

Create POST

Retrieve GET

Update PUT

Delete DELETE

Why REST?

•Simple, both conceptually and programmatically

•Simpler and cleaner than SOAP

SOAP ExamplePOST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn

<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock">

<m:GetStockPrice> <m:StockName>IBM</m:StockName>

</m:GetStockPrice> </soap:Body>

</soap:Envelope>

REST ExampleGET /stock/IBM HTTP/1.1 Host: www.example.org Accept: application/xml

SOAP Example 2POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn

<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-

envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock">

<m:BuyStock> <m:StockName>IBM</m:StockName> <m:Quantity>50</m:Quantity>

</m:BuyStock> </soap:Body>

</soap:Envelope>

REST Example 2POST /order HTTP/1.1 Host: www.example.org Content-Type: application/xml; charset=utf-8

<?xml version="1.0"?> <order>

<StockName>IBM</StockName><Quantity>50</Quantity>

</order>

Single Resource Summary

•Create▫POST /resourceName

•Retrieve▫GET /resourceName/resourceId

•Update▫PUT /resourceName/resourceId

•Delete▫DELETE /resourceName/resourceId

Making it Easy: JSR 311

•JAX-RS: The Java API for RESTful Web Services

•No XML Configuration!▫Simple annotations to quickly put together

some rest based web services.•Can do automatic serialization (both XML

and JSON + many others)

Example Application w/ Jersey

Some REST/Jersey/JAXB Gotchas•No real security standard for REST.

▫Mostly DIY solutions•Hibernate dependencies

▫Use cg-lib-nodeps

Questions?

The End

Sean is reachable at:• iam@seanstoppable.com•www.crazyorgenius.com•@ssmith