19
Folie 1 REST TechTalk > D. Seider > 15.01.2009 REST TechTalk Doreen Seider DLR-SC, Köln, 15.01.2009

REST

Embed Size (px)

DESCRIPTION

TechTalk von Doreen Seider (DLR Köln-Porz, 15.01.2009).

Citation preview

Page 1: REST

Folie 1REST TechTalk > D. Seider > 15.01.2009

RESTTechTalk

Doreen SeiderDLR-SC, Köln, 15.01.2009

Page 2: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 2

Gliederung

TheorieREST – Was? Was nicht? Woher? Wohin?

PraxisREST-basierte ApplikationenJSR 311 (JAX-RS)Referenzimplementierung Jersey

Zusammenfassung

Page 3: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 3

REST – TheorieWas 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)

Page 4: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 4

RESTDefinition

REpresentational State TransferGeprägt 2000 in Dissertation von Roy Fielding

“Architectural Styles and the Design of Network-based Software Architectures”

GrundprinzipienZustandslose Client-Server-KommunikationEindeutig identifizierbare RessourcenEinheitliche SchnittstelleRepräsentation(en) der RessourcenHypermedia

Page 5: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 5

RESTArchitektur des WWW

Basisstandards: HTTP, URL, HTMLErfüllung der REST-Grundprinzipien

= REST-basiert

Quelle: Wikipedia

Page 6: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 6

RESTGrundprinzipien am Beispiel WWW

Server

Clients

Zustandslose Client-Server-Kommunikation

Page 7: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 7

RESTGrundprinzipien am Beispiel WWW

Eindeutig identifizierbare RessourcenUniform Resource Locator (URL)

http://boox.com/sciencefiction/thehitchhikersguidetothegalaxyhttp://boox.com/orders/2009/01http://boox.com/customers/42http://boox.com/sales/2000-2009

Page 8: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 8

RESTGrundprinzipien am Beispiel WWW

Einheitliche SchnittstelleHTTP-Request-Methoden

GET – Abrufen PUT – Update oder ErstellenPOST – 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

...

Page 9: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 9

RESTGrundprinzipien am Beispiel WWW

Quelle: http://www.infoq.com/articles/rest-introduction

Einheitliche Schnittstelle

Page 10: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 10

RESTGrundprinzipien am Beispiel WWW

Repräsentation(en) von RessourcenFelder Accept und Content-Type im HTTP-HeaderClient-spezifische RepräsentationenZ.B. Browser: HTML

HTTP/1.1 200 OKServer: Apache/1.3.29 (Unix) PHP/4.3.4Content-Length: 483Content-Language: de Content-Type: text/htmlConnection: close

Page 11: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 11

RESTGrundprinzipien am Beispiel WWW

HypermediaVerknüpfung identifizierbarer Ressourcen (WWWeb)URL von Ressourcen in Repräsentation von anderen RessourcenSiehe 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>

Page 12: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 12

REST – PraxisREST-basierte Applikationen

Erfüllen Grundprinzipien von RESTSind meist HTTP-basiert (auf Grund von WWW-Verbreitung)Sind nicht neu

RealisierungsmöglichkeitenServlet API, JAX-RS,

Page 13: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 13

RESTJSR 311 oder JAX-RS

The Java API for RESTful Web ServicesZiel: Vereinfachung der Umsetzung von REST-PrinzipienServer-seitigVersion 1.0

Referenzimplementierung: Jersey

Page 14: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 14

RESTJersey

SituationClient – [GET, PUT, POST, DELETE, ...] URLServer – Applikationslogik (in Java)

ZielVerknüpfen von Client-Anfragen mit Applikationslogik

Umsetzung in JerseyAbbilden von URLs und HTTP-Request-Methoden auf Klassen und Methoden in Java mittels Annotationen

Page 15: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 15

RESTDemonstration

Jersey und RESTClient

Page 16: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 16

REST-basierte WS vs. WS mit XMLFakten

WS mit XMLProtokollunabhängig (aber fast immer SOAP mit HTTP)Tunneln über HTTP GET !Fehlercodes, !Caching, ...Explizite Schnittstellenbeschreibung – WSDL (aber bedarf meist Metainformationen)Gewohnter Ansatz

REST-basierte WSNutzen von bewährtem Protokoll HTTP

Fehlercodes, Caching, Content Negotiation,Unabhängiger Client durch einheitliche Schnittstelle Metainformationen notwendigGewöhnungsbedürftiger Ansatz

Page 17: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 17

Zusammenfassung

REST ist ArchitekturkonzeptWWW liegt diesem Konzept zu Grunde

REST-basierte Applikationen sind nicht neuREST-basierte Applikationen nutzen bewährtes Protokoll (HTTP)

Standards und Implementierungen von REST-APIs

Page 18: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 18

Quellen und Verweise

QuellenDissertation von Roy FieldingStefan Tilkov: A Brief Introduction to RESTStefan Tilkov: REST Anti-PatternsJava Magazin 01/09JSR 311

ProjekteJerseyRESTClient

Page 19: REST

REST TechTalk > D. Seider > 15.01.2009

Folie 19

Fragen und Anregungen