REST API

Zwei Systeme sollen Daten austauschen, und beide Seiten sprechen von einer Schnittstelle, meinen aber Verschiedenes. Eine REST API legt fest, wie dieser Austausch aussieht, und stützt sich dabei auf die Regeln des Web.
Ein Mann öffnet eine kleine gelbgrüne Tür, die in einen übergroßen Tonkrug eingelassen ist. Sinnbild für eine REST API, die jede Ressource auf gleiche Weise zugänglich macht.
© KI-generiert (TenMedia)

Was eine REST API ist

Eine REST API ist eine Schnittstelle, über die zwei Softwaresysteme Daten über das Netz austauschen, nach den Regeln des Architekturstils REST. Jede Information wird als Ressource behandelt, die unter einer eigenen Adresse erreichbar ist, und jeder Zugriff darauf folgt demselben festen Satz von Befehlen. Beschrieben hat diesen Stil Roy Fielding im Jahr 2000 in seiner Dissertation an der University of California, Irvine.

Der praktische Nutzen liegt in der Berechenbarkeit. Wer eine Ressource kennt, kennt auch die Befehle darauf, weil sie nicht je Anwendung neu erfunden werden. Genau das unterscheidet eine RESTful gebaute Schnittstelle von einer gewachsenen Sammlung einzelner Aufrufe mit eigenen Namen und eigener Logik.

HTTP-Methoden und Statuscodes

Fünf HTTP-Methoden decken den Alltag ab. GET liest, POST legt neu an, PUT ersetzt vollständig, PATCH ändert einzelne Felder, DELETE entfernt. Die Antwort trägt einen dreistelligen Statuscode, der den Ausgang beschreibt, von erfolgreich über fehlerhafte Anfrage und fehlende Berechtigung bis zum Serverfehler. Ein Fehler, der als Erfolg gemeldet wird, kostet Tage.

Zustandslosigkeit

Jede Anfrage enthält alles, was zu ihrer Bearbeitung nötig ist, auch die Anmeldung. Der Server merkt sich zwischen zwei Aufrufen nichts. Das macht den Betrieb einfacher, weil sich Anfragen beliebig auf mehrere Server verteilen lassen, verlagert aber Aufwand auf den Aufrufer. Skalierung wird damit zur Frage der Anzahl, nicht der Größe.

Grenzen und Betrieb

Ein API Endpunkt liefert immer die ganze Ressource, auch wenn nur zwei Felder gebraucht werden. Bei vielen verschachtelten Daten führt das zu einer Kette von Aufrufen, wo eine einzige Abfrage genügen würde. Eine REST API ist damit kein Allzweckwerkzeug, sondern der gute Standardfall. Für solche Fälle sind andere Ansätze näher am Bedarf, ebenso bei dauerhaften Verbindungen oder sehr hohen Nachrichtenmengen. In der Middleware stehen deshalb mehrere Übertragungswege nebeneinander, und die Wahl fällt je Anwendungsfall statt einmal für das ganze Haus.

Versionierung und Absicherung

Eine veröffentlichte Schnittstelle lässt sich nicht mehr still ändern, weil fremde Systeme daran hängen. Jede Änderung braucht deshalb entweder Abwärtskompatibilität oder eine neue Version. Zu einer RESTful betriebenen Schnittstelle gehören außerdem Authentifizierung, Begrenzung der Aufrufzahl und Protokollierung, damit im Zweifel nachvollziehbar bleibt, wer wann welche Daten geholt hat. Wo mehrere Schnittstellen zusammenlaufen, übernimmt ein API-Gateway diese Aufgaben zentral, statt sie in jeder Anwendung erneut zu bauen. Das lohnt sich ab der dritten oder vierten Schnittstelle, vorher überwiegt der Aufwand für den zusätzlichen Baustein.

Aktuelle Themen