REST, Restful Webservices ­ Steht für Representational State Transfer ­ Alternative zu SOAP­artigen Webservices ­ Idee: Jede Ressource (z.B. Kunde, Bestellposition) ist über eine (eindeutige) URL erreichbar ­ Nutzt HTTP für CRUD (create, read, update, delete) > GET: READ > POST: CREATE > PUT: UPDATE > DELETE: DELETE http://meinserver.de/app/... GET /kunden (gibt alle Kunden zurück z.B. im XML, JSON, Text-Format) GET /kunden/3/bestellungen GET /kunden/3/bestellungen/4/bestellpositionen POST /kunden (vorname=hans&nachname=wurst) PUT /kunden (vorname=franz) DELETE /kunden/3/bestellungen/4 Mai 12­08:01 1 Beispiel für eine REST-API (https://developers.pipedrive.com/v1) Mai 12­08:41 2 Vergleich REST versus SOAP Viele URLs Eine URL mit vielen Methoden Mai 12­08:32 3 REST Webservice Eignet sich "Datenbank im Web" (Ressourcen­lastig") Logik, Workflow, ... Adressierung Viele URLs (jede Nur eine URL, Auswahl Ressource hat eigene der Ressourcen über URL), Ressourcen können Methoden untereinander verlinken Rückgabe­Datenformat XML, JSON, TEXT, HTML XML (SOAP) Skalierung Loadbalancer, GET­ Anfragen Cachen Kein Caching, da immer POST Sicherheit kann Webserver übernehmen (.htaccess) über Applikation Mai 12­08:41 4 Implementierung mit Java => JERSEY Kochrezept ­ Jars von http://jersey.java.net herunterladen (komplettes ZIP­Archiv) ­ Jars dem Build­Path hinzufügen ­ Fassade (Server) implementieren: Pfad <SERVER>/unsereresouces/message Mai 12­08:49 5 ­ Webserver starten ­ Entweder Ressource im Browser betrachten... Mai 12­09:01 6 ­ ... oder Client schreiben Mai 12­09:02 7 Client mit mehreren Methoden ... Mai 12­09:31 8 ... und hier der dazu passende (siehe Nummerierung z.B. "1. Fall") Server-Teil Mai 12­09:32 9 Die GET-Zugriffe können Sie auch mit dem Browser testen Nächste Stunde: arbeiten mit PUT und POST Mai 12­09:24 10