120305 intro-rest

2,351 views

Published on

Some brief intro to REST as paradigm for building Web services (in German)

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,351
On SlideShare
0
From Embeds
0
Number of Embeds
1,820
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

120305 intro-rest

  1. 1. REST-konformeSchnittstellen für Web Services
  2. 2. Remote Procedure Call CORBA Remote Method Invocation XML-RPC SOAP Thrift
  3. 3. REST
  4. 4. REST ist eine ArchitekturHTTP ist eine konkreteImplementierung davon
  5. 5. Ressourcenhttp://www.mybank.com/accounts/http://www.mybank.com/accounts/4582http://www.mybank.com/accounts/4582/statements/http://www.mybank.com/accounts/4582/statements/latesthttp://www.mybank.com/accounts/4582/transfershttp://www.mybank.com/accounts/4582/transfers/12http://www.mybank.com/accounts/4582/transfers/12?from=...&to=...http://www.mybank.com/accounts/4582/transfers/12/recipient
  6. 6. Repräsentationen{ „account“ : { „id“ : 4582, „firstName“ : „Singh“, „lastName“ : „Darshan“, „balance“ : 25382.20, „openDate“ : „2002-02-20“ }}<?xml version=“1.0“?><account> <id>4582</id> <firstName>Singh</firstName> <lastName>Darshan</lastName> <balance>25382.20</balance> <openDate>2002-02-20</openDate></account>
  7. 7. 4 Operationen GET POST PUT DELETE
  8. 8. 4 Operationensafe? GET POST PUT DELETE
  9. 9. 4 Operationensafe? idempotent? GET POST PUT DELETE
  10. 10. Hypermedia Person Transfer PersonAccount Statement Balance
  11. 11. Zustandslose Kommunikation Keine Sessions Keine CookiesJede Anfrage enthält alle Informationen, die der Server für die Verarbeitung benötigt.
  12. 12. REST ist nurein Paradigma
  13. 13. Häufige „Fehler“
  14. 14. RPC Stilhttp://www.mybank.com/accounts/4582?action=transfer&dest=9811&amount=100
  15. 15. POST Tunnelinghttp://www.mybank.com/accounts?action=close&id=4582
  16. 16. Vermischung Ressource und RepräsentationGET /accounts/4982.json?apikey=912864GET /accounts/4982Accept: application/jsonX-apikey: 912864
  17. 17. Keine Links{ „account“ : { „id“ : 4582, „firstName“ : „Singh“, „lastName“ : „Darshan“, „balance“ : 25382.20, „openDate“ : „2002-02-20“ }}
  18. 18. Nur interne IDs{ „account“ : { „id“ : 4582, „owner“ : 56120, „balance“ : 25382.20, „openDate“ : „2002-02-20“ }}
  19. 19. Keine Links zu Sub-Ressourcen{ „account“ : { „id“ : 4582, „owner“ : „http//www.mybank.com/clients/561202“, „balance“ : 25382.20, „openDate“ : „2002-02-20“ }}
  20. 20. Korrekt:{ „account“ : { „id“ : 4582, „owner“ : „http//www.mybank.com/clients/561202“, „statements“ : „http://www.mybank.com/accounts/ 4582/statements“, „transfers“ : „http://www.mybank.com/accounts/ 4582/transfers“, „balance“ : 25382.20, „openDate“ : „2002-02-20“ }}
  21. 21. HTTP Status CodesGET /accounts/4982HTTP/1.1 200 OKContent-Type: application/json{ „error: { „code“ : 491, „message“ : „Not authorized“ } }
  22. 22. Zusammenfassung• Wichtiges Paradigma für moderne APIs• REST ist offen für Interpretationen• Entwicklungsframeworks helfen nur wenig

×