RESTFul Web Services

bevyquixoticΑσφάλεια

3 Νοε 2013 (πριν από 3 χρόνια και 11 μήνες)

132 εμφανίσεις

RESTFul Web Services

The 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 Example

POST /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 Example

GET /stock/IBM HTTP/1.1

Host: www.example.org

Accept: application/xml


SOAP Example 2

POST /
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 2

POST /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