© istockphoto.com/mevans
Windows Developer
Synchrone Programmierung mit REST-APIs

Die Kraft der Ruhe


REST-APIs blicken auf eine lange Geschichte zurück: Roy Fielding erwähnte den Begriff in seiner im Jahr 2000 erschienenen Doktorarbeit zum ersten Mal. Die „No Fluff Just Stuff“-Konferenzserie widmete dem Thema um 2006 herum jede Menge Aufmerksamkeit, was die Massenmarktadaption vorantrieb.

REST – der Begriff ist ein Akronym für „REpresen­ta­tio­nal State Transfer“ – entstand aus der Notwendigkeit heraus, Systeme immer größer zu skalieren. Zustandsbehaftete Protokolle erweisen sich dabei als suboptimal, da sie das Skalieren erschweren: Nehmen die einzelnen Befehle einer mehrstufigen Transaktion aufeinander Bezug, muss jedes Kommando auf derselben Maschine abgearbeitet werden.

Über die akademisch korrekte Definition von REST-Protokollen lässt sich hervorragend streiten und publizieren. Für an kommerziellen Produkten arbeitende Entwickler ist ein REST-API normalerweise ein per HTTP implementiertes Interface, das einige Bedingungen erfüllen muss.

You are relaxing?

Das mit Abstand wichtigste Kriterium ist, dass jede REST-Interaktion in sich geschlossen sein muss. Ein Beispiel dafür wäre das Bestellen eines Kekses in einem Hochgeschwindigkeitszug: Die Servicekraft wird über Sitznummer und Geschmacksrichtung informiert und setzt sich sodann in Bewegung. Für die Auslieferung der Leckerei sind keine weiteren Informationen notwendig; die Aufgabe lässt sich mit minimalem Aufwand an Kollegen delegieren.

Eine weitere Besonderheit ist, dass jede Ressource durch einen URL beschrieben wird. Im Fall einer Flugzeugverwaltung könnte das beispielsweise example.com/airman/<id> sein. Das Übergeben von ID-Parametern gilt als klassisches Anti-Pattern. Bei HTTP-basierten REST-Systemen sollte man zudem auf das Setzen korrekter Caching-Header achten – zwischengeschaltete Proxies können Informationen so zwecks Entlastung des Servers cachen.

Aus der Logik folgt, dass REST-basierte Protokolle eine klare Rollenverteilung zwischen Client und Server aufweisen müssen. Wenn die Daten zwischen Server und Client aufgeteilt sind, gibt es keine „klare“ Zugriffsschnittstelle mehr: Zustandslosigkeit setzt einen mehr oder weniger zentralisierten Datenspeicher voraus.

Fielding beschrieb in seiner Arbeit kein bestimmtes Übertragungsprotokoll. In der Praxis setzen als RESTful bezeichnete Interfaces so gut wie immer auf HTTP: Aus Gründen der Kompatibilität werden die verfügbaren Kommandos oft auf GET und POST reduziert. GET dient dabei zur Beschaffung von Daten, während Änderungen, Lösch- und Einpfl...

Windows Developer
Synchrone Programmierung mit REST-APIs

Die Kraft der Ruhe

REST-APIs blicken auf eine lange Geschichte zurück: Roy Fielding erwähnte den Begriff in seiner im Jahr 2000 erschienenen Doktorarbeit zum ersten Mal. Die „No Fluff Just Stuff“-Konferenzserie widmete dem Thema um 2006 herum jede Menge Aufmerksamkeit, was die Massenmarktadaption vorantrieb.

Tam Hanna


REST-APIs blicken auf eine lange Geschichte zurück: Roy Fielding erwähnte den Begriff in seiner im Jahr 2000 erschienenen Doktorarbeit zum ersten Mal. Die „No Fluff Just Stuff“-Konferenzserie widmete dem Thema um 2006 herum jede Menge Aufmerksamkeit, was die Massenmarktadaption vorantrieb.

REST – der Begriff ist ein Akronym für „REpresen­ta­tio­nal State Transfer“ – entstand aus der Notwendigkeit heraus, Systeme immer größer zu skalieren. Zustandsbehaftete Protokolle erweisen sich dabei als suboptimal, da sie das Skalieren erschweren: Nehmen die einzelnen Befehle einer mehrstufigen Transaktion aufeinander Bezug, muss jedes Kommando auf derselben Maschine abgearbeitet werden.

Über die akademisch korrekte Definition von REST-Protokollen lässt sich hervorragend streiten und publizieren. Für an kommerziellen Produkten arbeitende Entwickler ist ein REST-API normalerweise ein per HTTP implementiertes Interface, das einige Bedingungen erfüllen muss.

You are relaxing?

Das mit Abstand wichtigste Kriterium ist, dass jede REST-Interaktion in sich geschlossen sein muss. Ein Beispiel dafür wäre das Bestellen eines Kekses in einem Hochgeschwindigkeitszug: Die Servicekraft wird über Sitznummer und Geschmacksrichtung informiert und setzt sich sodann in Bewegung. Für die Auslieferung der Leckerei sind keine weiteren Informationen notwendig; die Aufgabe lässt sich mit minimalem Aufwand an Kollegen delegieren.

Eine weitere Besonderheit ist, dass jede Ressource durch einen URL beschrieben wird. Im Fall einer Flugzeugverwaltung könnte das beispielsweise example.com/airman/<id> sein. Das Übergeben von ID-Parametern gilt als klassisches Anti-Pattern. Bei HTTP-basierten REST-Systemen sollte man zudem auf das Setzen korrekter Caching-Header achten – zwischengeschaltete Proxies können Informationen so zwecks Entlastung des Servers cachen.

Aus der Logik folgt, dass REST-basierte Protokolle eine klare Rollenverteilung zwischen Client und Server aufweisen müssen. Wenn die Daten zwischen Server und Client aufgeteilt sind, gibt es keine „klare“ Zugriffsschnittstelle mehr: Zustandslosigkeit setzt einen mehr oder weniger zentralisierten Datenspeicher voraus.

Fielding beschrieb in seiner Arbeit kein bestimmtes Übertragungsprotokoll. In der Praxis setzen als RESTful bezeichnete Interfaces so gut wie immer auf HTTP: Aus Gründen der Kompatibilität werden die verfügbaren Kommandos oft auf GET und POST reduziert. GET dient dabei zur Beschaffung von Daten, während Änderungen, Lösch- und Einpfl...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang