130 likes | 356 Vues
RESTFul Web Services. The Easy Way. What is REST?. Representational State Transfer Maps your CRUD actions to HTTP verbs. Why REST?. Simple, both conceptually and programmatically Simpler and cleaner than SOAP. SOAP Example. POST /InStock HTTP/1.1 Host: www.example.org
E N D
RESTFul Web Services The Easy Way
What is REST? • Representational State Transfer • Maps your CRUD actions to HTTP verbs
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:Envelopexmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Bodyxmlns: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)
Some REST/Jersey/JAXB Gotchas • No real security standard for REST. • Mostly DIY solutions • Hibernate dependencies • Use cg-lib-nodeps
The End Sean is reachable at: • iam@seanstoppable.com • www.crazyorgenius.com • @ssmith