The document discusses RESTful web services and compares them to other types of web services. RESTful services use HTTP and embrace principles like making everything a resource, using clean and descriptive URIs, and representing state through representations. They avoid bandwidth overhead and leverage existing web protocols and infrastructure. Other types of web services, like WS-*, focus more on tooling and standards but ignore aspects of HTTP and can be more complex.
6. Representational State Transfer (REST) is a
style of software architecture for
distributed hypermedia systems such as the
World Wide Web. The term Representational
State Transfer was introduced and
defined in 2000 by Roy Fielding in his
doctoral dissertation. Fielding is one of
the principal authors of the Hypertext
Transfer Protocol (HTTP) specification
versions 1.0 and 1.1.
9. Resources
POST /booking/{id}/
GET
Application /route/{id}/
PUT
DELETE /passenger/{id}/
10. Addressable
Resources
POST /booking/{id}/
GET
Application /route/{id}/
PUT
DELETE /passenger/{id}/
11. Uniform Addressable
Interface Resources
POST /booking/{id}/
GET
Application /route/{id}/
PUT
DELETE /passenger/{id}/
12. Addressable
Resources
GET /booking/123/
/booking/{id}/
Application /route/{id}/
/passenger/{id}/
13. Addressable
Resources
GET /booking/123/
/booking/{id}/
Application /route/{id}/
/passenger/{id}/
State and
Representation
14. Addressable
Resources
GET /booking/123/
/booking/{id}/
Application /route/{id}/
200 OK
/passenger/{id}/
id: 123,
pickupTime: ‘2010-12-13T09:00:00’,
passenger: { State and
link: {
href: ‘/passenger/234’, Representation
rel: ‘related’
}
}
15. REST = HTTP Used Right
REST was “developed” in parallel with the HTTP/1.1
protocol
Caching and conditional GET
Proxies
HTTP headers (e.g.content negotiation)
HTTP methods
18. Everything Is a Resource
•Version 1.0.3 of the software release
•The latest version of the software release
•Search results for the word ‘Galactica’
•The next prime number after 1024
•The relationship between Alice and Bob
•A list of open bugs in the bug database
There shall be nothing else
28. REST WS*
Embraces HTTP Ignores HTTP
No bandwidth overhead Good tool support
Simplicity WSDL
Web already is RESTful “Standards”
HTTPS / HTTP Diges, Plethora of Security
OAuth Standards