Das World Wide Web besteht aus weit mehr Kom­po­nen­ten, als In­ter­net­nut­zer beim Aufruf einer Website oder -ap­pli­ka­ti­on wahr­neh­men. So greifen bei­spiels­wei­se nicht nur mensch­li­che User, sondern auch ma­schi­nel­le Benutzer auf die Daten und Inhalte ver­schie­dens­ter Web­pro­jek­te zu. Die Vor­aus­set­zung ist, dass der jeweilige Betreiber sein Projekt überhaupt anderen An­wen­dun­gen zu­gäng­lich macht, indem er einen ent­spre­chen­den Web­ser­vice zur Verfügung stellt. Ein gutes Beispiel stellt der Kurz­nach­rich­ten­dienst Twitter dar: Dank eines ent­spre­chen­den Web­ser­vices können beliebige An­wen­dun­gen Tweets im Namen eines Twitter-Users auslesen oder gar schreiben.

Um einen solchen Web­ser­vice zu im­ple­men­tie­ren, gibt es ver­schie­de­ne Techniken wie das Ab­fra­ge­pro­to­koll Remote Procedure Call (RPC), das Netz­werk­pro­to­koll SOAP oder auch das Pro­gram­mier­pa­ra­dig­ma Re­pre­sen­ta­tio­nal State Transfer (REST), um das es im Folgenden geht.

KI-Assistent kostenlos – Ihr smarter All­tags­hel­fer
  • DSGVO-konform & sicher gehostet in Deutsch­land
  • Pro­duk­ti­vi­tät steigern – weniger Aufwand, mehr Output
  • Direkt im Browser starten – ohne In­stal­la­ti­on

Das steckt hinter REST

Der Begriff „Re­pre­sen­ta­tio­nal State Transfer“ stammt aus einer von 2000 da­tie­ren­den Dis­ser­ta­ti­on von Roy Fielding, einem der Haupt­ent­wick­ler zahl­rei­cher Web­stan­dards. Er be­schreibt in abs­tra­hier­ter Form die Ar­chi­tek­tur, die dem World Wide Web (HTTP-Protokoll, HTML- und XML-Parser, Web- und Ap­pli­ca­ti­on-Server etc.) zugrunde liegt. Prin­zi­pi­ell ist die REST-Ar­chi­tek­tur al­ler­dings nicht von spe­zi­fi­schen Pro­to­kol­len abhängig. Ihr zentrales Konzept sind Res­sour­cen, die nach Fielding folgende An­for­de­run­gen erfüllen müssen:

  • Adres­sier­bar­keit: Jede Ressource, z. B. eine Be­stel­lung, ein Produkt oder ein Artikel, muss über einen Unique Resource Iden­ti­fier (URI) iden­ti­fi­ziert werden können.
  • Ein­heit­li­che Schnitt­stel­le: Auf jede Ressource muss einfach und ein­heit­lich mithilfe von Stan­dard­me­tho­den zu­ge­grif­fen werden können. Beispiele sind HTTP-Methoden wie „GET“, „POST“ oder „PUT“.
  • Client-Server-Struktur: Generell gilt das Client-Server-Prinzip, nach dem ein Server einen Dienst zur Verfügung stellt, der bei Bedarf von einem Client an­ge­for­dert werden kann.
  • Zu­stands­lo­sig­keit: Die Kom­mu­ni­ka­ti­on zwischen Server und Clients ist zu­stands­los. Das heißt, dass alle aus­ge­tausch­ten Nach­rich­ten sämtliche In­for­ma­tio­nen enthalten, die notwendig sind, um sie zu verstehen. Der Server speichert keine Zu­satz­in­for­ma­tio­nen zwischen zwei Nach­rich­ten wie bei­spiels­wei­se in Form von Sessions. Die Zu­stands­lo­sig­keit macht REST-Services sehr einfach ska­lier­bar, da ein­ge­hen­de Anfragen im Rahmen von Last­ver­tei­lung un­kom­pli­ziert auf ver­schie­de­ne Server verteilt werden können.
  • Un­ter­schied­li­che Re­prä­sen­ta­tio­nen der Res­sour­cen: Jede Ressource kann un­ter­schied­li­che Dar­stel­lungs­for­men besitzen. Je nachdem, was der Client anfordert, muss sie bei­spiels­wei­se in ver­schie­de­nen Sprachen oder Formaten wie HTML, JSON oder XML aus­ge­lie­fert werden können.
  • Hy­per­me­dia: Die Be­reit­stel­lung der Res­sour­cen geschieht über Hy­per­me­dia, z. B. in Form von „href“- und „src“-At­tri­bu­ten in HTML-Do­ku­men­ten oder für die jeweilige Schnitt­stel­le de­fi­nier­ten JSON- bzw. XML-Elementen. Somit navigiert der Client einer REST-API nach dem Prinzip „Hy­per­me­dia as the Engine of Ap­pli­ca­ti­on State (HATEOAS)“ aus­schließ­lich über URLs, die der Server be­reit­stellt und benötigt kein zu­sätz­li­ches Wissen über die Schnitt­stel­le.

Diese strikten Vorgaben der REST-Ar­chi­tek­tur er­mög­li­chen die Ent­wick­lung gut struk­tu­rier­ter Dienste, die einfach zu in­te­grie­ren sind und über ein ein­heit­li­ches Protokoll (HTTP) kom­mu­ni­zie­ren. Dank der res­sour­cen­ori­en­tier­ten Struktur entfällt bei der Kon­zi­pie­rung eines REST-Web­ser­vices außerdem die Suche nach an­wen­dungs­spe­zi­fi­schen Pro­to­kol­len, die bei ver­gleich­ba­ren Al­ter­na­ti­ven wie SOAP notwendig ist.

So funk­tio­niert die Ge­stal­tung eines REST-Services

Um einen REST-Web­ser­vice zu rea­li­sie­ren, werden haupt­säch­lich HTTP und dessen ver­schlüs­sel­te Version HTTPS verwendet. Das ist ei­ner­seits auf dessen enorme Ver­brei­tung zu­rück­zu­füh­ren, dank der es in so gut wie jeder Firewall offen ist; an­de­rer­seits ist das zu­stands­lo­se Hypertext Transfer Protocol auch ver­gleichs­wei­se einfach aufgebaut, ohne dass spezielle Im­ple­men­tie­run­gen vor­aus­ge­setzt werden. Zudem definiert der HTTP-Standard bereits ein ganzes Set an Befehlen, mit denen auf Res­sour­cen zu­ge­grif­fen werden kann:

HTTP-Methode (Befehl) Be­schrei­bung
GET Fordert die jeweilige Ressource vom Server an, ohne deren Zustand am Server zu verändern
POST Erstellt eine neue Ressource unterhalb der an­ge­ge­be­nen Ressource, die vom URI au­to­ma­tisch adres­siert wird; kann außerdem verwendet werden, um be­stehen­de Res­sour­cen zu mo­di­fi­zie­ren
HEAD Fordert nur den Header der je­wei­li­gen Ressource vom Server an, um z. B. die Gül­tig­keit einer Datei zu über­prü­fen
PUT Legt die an­ge­ge­be­ne Ressource auf dem Server an oder mo­di­fi­ziert eine be­stehen­de
PATCH Mo­di­fi­ziert einen Teil der an­ge­ge­be­nen Ressource
DELETE Löscht die jeweilige Ressource
TRACE Gibt die Anfrage so zurück, wie sie der Webserver erhält, um Ver­än­de­run­gen auf dem Weg zu selbigem zu ermitteln
OPTIONS Zeigt eine Liste der vom Server un­ter­stütz­ten Methoden
CONNECT Leitet die Anfrage durch einen SSL-Tunnel, in der Regel, um eine Ver­bin­dung über einen Pro­xy­ser­ver her­zu­stel­len

Die Be­fehls­pa­let­te kann durch die Im­ple­men­tie­rung weiterer Pro­to­kol­le ver­grö­ßert werden. Typisch ist hier vor allem das WebDAV-Protokoll, das die Methoden COPY (Ressource kopieren), MOVE (Ressource ver­schie­ben), LOCK (Ressource sperren), UNLOCK (Ressource freigeben) und MKCOL (Ver­zeich­nis erstellen) hinzufügt.

Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive

Für welche Web­ser­vices eignet sich die REST-Ar­chi­tek­tur?

Ty­pi­scher­wei­se sind vor allem die Stan­dard­me­tho­den GET, POST, PUT/PATCH und DELETE bei der Ent­wick­lung eines REST-Services via HTTP im Einsatz, was die Annahme zulässt, dass sich die Ar­chi­tek­tur nur für den Aufbau simpler Da­ten­ver­wal­tun­gen eignet. Und auch der Grundsatz der Zu­stands­lo­sig­keit der REST-Res­sour­cen scheint die Mög­lich­kei­ten der Ar­chi­tek­tur stark ein­zu­schrän­ken. Mit der richtigen Be­hand­lung der Res­sour­cen er­mög­licht das REST-Interface al­ler­dings weit mehr als das simple Einfügen von Da­ten­sät­zen, wie die folgenden Beispiele beweisen:

  • Web­ser­vices mit Trans­ak­ti­ons­ver­ar­bei­tung: Um Web­ser­vices mit Trans­ak­tio­nen zu rea­li­sie­ren, ist ein Trans­ak­ti­ons­ma­na­ger un­er­läss­lich. Da alle Res­sour­cen aufgrund der Zu­stands­lo­sig­keit immer ohne Zu­satz­in­for­ma­tio­nen zwischen zwei Anfragen, also ohne die Zuweisung von Sitzungen, ge­spei­chert werden, ist die Umsetzung mit REST auf zwei Mög­lich­kei­ten be­schränkt:

    • Die Res­sour­cen werden so gestaltet, dass Trans­ak­tio­nen innerhalb einer Anfrage ver­ar­bei­tet werden können.

    • Es wird eine Ressource angelegt, die Anträge auf Trans­ak­tio­nen verwaltet. Jede Anfrage, die dieser Trans­ak­ti­ons­ma­na­ger-Ressource gestellt wird, erzeugt au­to­ma­tisch eine weitere Ressource, die über einen URI iden­ti­fi­ziert wird und eine zu­sam­men­hän­gen­de Trans­ak­ti­on re­prä­sen­tiert. Ver­än­de­run­gen können in der Folge als Re­prä­sen­ta­tio­nen dieser Ressource auf dem Server abgelegt werden. Eine weitere Anfrage an den Trans­ak­ti­ons­ma­na­ger schließt die Trans­ak­ti­on ab
  • Asyn­chro­ne Web­ser­vices: Für bestimmte Web­ser­vices ist es wün­schens­wert, dass Anfrage und Antwort zeitlich ent­kop­pelt sind. Da HTTP für diesen Fall keinerlei Me­cha­nis­men bietet, bleibt einzig die Option die Ab­ar­bei­tun­gen der Anfragen als Ser­vice­an­bie­ter selbst zu verwalten und auf gezielte Anfrage der Nutzer wei­ter­zu­lei­ten.
  • Web­ser­vices mit weit­rei­chen­der In­ter­ope­ra­bi­li­tät: REST-Services zeichnen sich durch ihre große Fle­xi­bi­li­tät aus, die zum einen aufgrund der Kon­zen­tra­ti­on auf ein einziges zu­grun­de­lie­gen­des Protokoll, zum anderen aus der direkten Adres­sie­rung der einzelnen Res­sour­cen re­sul­tiert. Ins­be­son­de­re mobile Clients pro­fi­tie­ren von den geringen An­for­de­run­gen der REST-Ar­chi­tek­tur. Die einfache Er­reich­bar­keit der Res­sour­cen bewirkt außerdem, dass diese ohne weiteres von Such­ma­schi­nen gefunden werden können.

Web­ser­vices mit REST pro­gram­mie­ren – Fazit

Das REST-Gerüst liefert her­vor­ra­gen­de Mittel zur Kon­zi­pie­rung und Umsetzung von Web­ser­vices ver­schie­dens­ter Art. Dank der Tatsache, dass nahezu alle Geräte das Hypertext Transfer Protocol un­ter­stüt­zen, können sowohl Desktop- als auch mobile Clients mühelos und ohne zu­sätz­li­che Im­ple­men­tie­run­gen mit dem REST-Interface arbeiten. Das Ergebnis sind Web­ser­vices, die durch ein hohes Maß an

  • Platt­form­un­ab­hän­gig­keit,
  • Ska­lier­bar­keit,
  • Per­for­mance,
  • In­ter­ope­ra­bi­li­tät
  • und Fle­xi­bi­li­tät

über­zeu­gen. Die Nutzung erfordert jedoch auch das ent­spre­chen­de Know-how, wobei vor allem die In­ter­ak­ti­on zwischen den einzelnen, zu­stands­lo­sen Res­sour­cen sehr komplex und schwer zu be­werk­stel­li­gen ist. Wer bereits mit Al­ter­na­ti­ven wie dem Protokoll SOAP ge­ar­bei­tet hat, wird durch die gänzlich anderen und un­ge­wohn­ten Ansätze zum Umdenken gezwungen sein – besitzt am Ende aber einen Service, der sehr viel leichter in un­er­war­te­ten Kontexten nutzbar ist.

Domain kaufen
Re­gis­trie­ren Sie Ihre perfekte Domain
  • Inklusive 1 SSL-Wildcard-Zer­ti­fi­kat pro Vertrag
  • Inklusive Domain Lock
  • Inklusive Domain Connect für einfache DNS-Ein­rich­tung
Zum Hauptmenü