Konzept

Die hier beschriebene REST-Schnittstelle wurde aufgebaut basierend auf Vorschlägen aus dem sehr empfehlenswerten Buch ‚REST in Practice' von Jim Webber, Savas Parastatidis und Ian Robinson, Verlag O Reilly 2010. 
In der REST-Welt werden Ressourcen manipuliert:

  • Ãœber den URI wird die Ressource identifiziert.
  • Das HTTP-Verb sagt was damit zu tun ist (GET = lesen, POST = erzeugen, PUT = Schreiben, DELETE = Löschen)
  • Im HTTP-Content werden die Daten-Parameter übergeben, falls vorhanden.


Den Client-Entwicklern stehen XML und JSON als Datenformate zur Verfügung. Der REST-Server sollte nach einem kurzen Einstieg für den Client-Entwickler selbstdokumentierend sein. Das bedeutet, dass nicht nur die Daten selber zur Verfügung stehen, sondern auch Meta-Daten, welche die vorhandenen Daten und Methoden beschreiben.

Im Folgenden wird als Muster für alle Server-Zugriffe die Adresse ‚rest.i-ag.ch' verwendet. Dies ist ein Platzhalter für die Adresse des REST-Servers beim Kunden.

REST basiert auf dem HTTP-Protokoll und ist in Folge zustandslos und grundsätzlich textbasiert. Das bedeutet, dass jede Aktion oder Aufruf in sich abgeschlossen und atomar ist. 
Weiter müssen in der Regel alle zu übertragenden Daten im ACSII-Format übertragen werden. Werden einzelne Ressourcen wie Bilder angesprochen, können diese auch binär übertragen werden.

Die Verwendung von URL-Parameter bedingt, dass Werte URL-Codiert werden, d.h. alle Zeichen ausserhalb '0'..'9', 'a'..'z', 'A'..'Z', '.' müssen in ihre hex-Darstellung umgesetzt werden: Space -> %20 etc.

Standardmässig wird UTF-8 erwartet und gesendet (über den content-type kann via charset auch ISO-8851-1 angefordert werden).