2. Gliederung
Theorie
REST – Was? Was nicht? Woher? Wohin?
Praxis
REST-basierte Applikationen
JSR 311 (JAX-RS)
Referenzimplementierung Jersey
Zusammenfassung
Folie 2
REST TechTalk > D. Seider > 15.01.2009
3. REST – Theorie
Was ist REST?
REST ist eine Alternative für SOAP Web Services ...?
REST ist HTTP-basiert ...?
REST ist ein Hype ...?
...?
REST ist ein Architekturkonzept.
(REST vs. SOAP)
Folie 3
REST TechTalk > D. Seider > 15.01.2009
4. REST
Definition
REpresentational State Transfer
Geprägt 2000 in Dissertation von Roy Fielding
“Architectural Styles and the Design of Network-based Software
Architectures”
Grundprinzipien
Zustandslose Client-Server-Kommunikation
Eindeutig identifizierbare Ressourcen
Einheitliche Schnittstelle
Repräsentation(en) der Ressourcen
Hypermedia
Folie 4
REST TechTalk > D. Seider > 15.01.2009
5. REST
Architektur des WWW
Basisstandards: HTTP, URL, HTML
Erfüllung der REST-Grundprinzipien
= REST-basiert
Quelle: Wikipedia
Folie 5
REST TechTalk > D. Seider > 15.01.2009
6. REST
Grundprinzipien am Beispiel WWW
Zustandslose Client-Server-Kommunikation
Server
Clients
Folie 6
REST TechTalk > D. Seider > 15.01.2009
7. REST
Grundprinzipien am Beispiel WWW
Eindeutig identifizierbare Ressourcen
Uniform Resource Locator (URL)
http://boox.com/sciencefiction/thehitchhikersguidetothegalaxy
http://boox.com/orders/2009/01
http://boox.com/customers/42
http://boox.com/sales/2000-2009
Folie 7
REST TechTalk > D. Seider > 15.01.2009
8. REST
Grundprinzipien am Beispiel WWW
Einheitliche Schnittstelle
HTTP-Request-Methoden
GET – Abrufen
PUT – Update oder Erstellen
POST – Erstellen oder Hinzufügen
DELETE – Löschen
(HEAD, TRACE, OPTIONS, CONNECT)
[GET, PUT, POST, DELETE, ...] http://boox.com/orders/2009/01
[GET, PUT, POST, DELETE, ...] http://boox.com/customers/42
...
Folie 8
REST TechTalk > D. Seider > 15.01.2009
9. REST
Grundprinzipien am Beispiel WWW
Einheitliche Schnittstelle
Quelle: http://www.infoq.com/articles/rest-introduction
Folie 9
REST TechTalk > D. Seider > 15.01.2009
10. REST
Grundprinzipien am Beispiel WWW
Repräsentation(en) von Ressourcen
Felder Accept und Content-Type im HTTP-Header
Client-spezifische Repräsentationen
Z.B. Browser: HTML
HTTP/1.1 200 OK
Server: Apache/1.3.29 (Unix) PHP/4.3.4
Content-Length: 483
Content-Language: de
Content-Type: text/html
Connection: close
Folie 10
REST TechTalk > D. Seider > 15.01.2009
11. REST
Grundprinzipien am Beispiel WWW
Hypermedia
Verknüpfung identifizierbarer Ressourcen (WWWeb)
URL von Ressourcen in Repräsentation von anderen Ressourcen
Siehe HTML
<order ref=http://boox.com/orders/1>
<customer ref=http://boox.com/customers/42>
<books>
<book ref=http://boox.com/sciencefiction/thehitchhikers
guidetothegalaxy>
<book ref=http://boox.com/fantasy/thelordoftherings>
</books>
</order>
Folie 11
REST TechTalk > D. Seider > 15.01.2009
12. REST – Praxis
REST-basierte Applikationen
Erfüllen Grundprinzipien von REST
Sind meist HTTP-basiert (auf Grund von WWW-Verbreitung)
Sind nicht neu
Realisierungsmöglichkeiten
Servlet API, JAX-RS,
Folie 12
REST TechTalk > D. Seider > 15.01.2009
13. REST
JSR 311 oder JAX-RS
The Java API for RESTful Web Services
Ziel: Vereinfachung der Umsetzung von REST-Prinzipien
Server-seitig
Version 1.0
Referenzimplementierung: Jersey
Folie 13
REST TechTalk > D. Seider > 15.01.2009
14. REST
Jersey
Situation
Client – [GET, PUT, POST, DELETE, ...] URL
Server – Applikationslogik (in Java)
Ziel
Verknüpfen von Client-Anfragen mit Applikationslogik
Umsetzung in Jersey
Abbilden von URLs und HTTP-Request-Methoden auf Klassen und
Methoden in Java mittels Annotationen
Folie 14
REST TechTalk > D. Seider > 15.01.2009
15. REST
Demonstration
Jersey und RESTClient
Folie 15
REST TechTalk > D. Seider > 15.01.2009
16. REST-basierte WS vs. WS mit XML
Fakten
WS mit XML
Protokollunabhängig (aber fast immer SOAP mit HTTP)
Tunneln über HTTP GET !Fehlercodes, !Caching, ...
Explizite Schnittstellenbeschreibung – WSDL (aber bedarf meist
Metainformationen)
Gewohnter Ansatz
REST-basierte WS
Nutzen von bewährtem Protokoll HTTP
Fehlercodes, Caching, Content Negotiation,
Unabhängiger Client durch einheitliche Schnittstelle
Metainformationen notwendig
Gewöhnungsbedürftiger Ansatz
Folie 16
REST TechTalk > D. Seider > 15.01.2009
17. Zusammenfassung
REST ist Architekturkonzept
WWW liegt diesem Konzept zu Grunde
REST-basierte Applikationen sind nicht neu
REST-basierte Applikationen nutzen bewährtes Protokoll (HTTP)
Standards und Implementierungen von REST-APIs
Folie 17
REST TechTalk > D. Seider > 15.01.2009
18. Quellen und Verweise
Quellen
Dissertation von Roy Fielding
Stefan Tilkov: A Brief Introduction to REST
Stefan Tilkov: REST Anti-Patterns
Java Magazin 01/09
JSR 311
Projekte
Jersey
RESTClient
Folie 18
REST TechTalk > D. Seider > 15.01.2009