13
RESTFul Web Services The Easy Way

RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

Embed Size (px)

Citation preview

Page 1: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

RESTFul Web ServicesThe Easy Way

Page 2: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

What is REST?

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

Action Verb

Create POST

Retrieve GET

Update PUT

Delete DELETE

Page 3: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

Why REST?

•Simple, both conceptually and programmatically

•Simpler and cleaner than SOAP

Page 4: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

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>

Page 5: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

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

Page 6: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

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>

Page 7: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

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>

Page 8: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

Single Resource Summary

•Create▫POST /resourceName

•Retrieve▫GET /resourceName/resourceId

•Update▫PUT /resourceName/resourceId

•Delete▫DELETE /resourceName/resourceId

Page 9: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

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)

Page 10: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

Example Application w/ Jersey

Page 11: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

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

▫Mostly DIY solutions•Hibernate dependencies

▫Use cg-lib-nodeps

Page 12: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

Questions?

Page 13: RESTFul Web Services The Easy Way. What is REST? Representational State Transfer Maps your CRUD actions to HTTP verbs ActionVerb CreatePOST RetrieveGET

The End

Sean is reachable at:• [email protected]•www.crazyorgenius.com•@ssmith