REST API

Eine REST API ist der verbreitetste Weg, zwei Softwaresysteme über das Netz miteinander sprechen zu lassen. Wer Fachverfahren, ERP-Systeme oder Fremdanwendungen verbinden will, trifft fast immer auf diesen Architekturstil.
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 ist eine REST API?

Eine REST API ist eine Programmierschnittstelle, die Daten über das Web-Protokoll HTTP bereitstellt. Jede Ressource, etwa ein Vorgang oder ein Datensatz, erhält eine eigene Adresse. Der Zugriff erfolgt über standardisierte Methoden wie GET zum Lesen und POST zum Anlegen. REST steht für Representational State Transfer und beschreibt keinen Standard, sondern einen Architekturstil.

Der praktische Nutzen liegt in der Anschlussfähigkeit. Weil eine REST API nur auf HTTP und meist auf dem Datenformat JSON aufsetzt, kann sie von nahezu jeder Programmiersprache und jedem Gerät angesprochen werden. Genau das macht sie zur ersten Wahl, wenn heterogene Systemlandschaften zusammenwachsen sollen.

Die Grundregeln von REST

Roy Fielding beschrieb den Architekturstil im Jahr 2000 in seiner Dissertation. Er nennt mehrere Bedingungen, von denen vier für die Praxis entscheidend sind.

Ressourcen statt Funktionen. Die Schnittstelle bildet Dinge ab, nicht Tätigkeiten. Statt eines Aufrufs vorgangAnlegen gibt es die Ressource /vorgaenge, auf die verschiedene Methoden angewendet werden.

Zustandslosigkeit. Jede Anfrage enthält alle Informationen, die zu ihrer Beantwortung nötig sind. Der Server merkt sich zwischen zwei Aufrufen nichts. Das klingt unbequem, erlaubt aber, Anfragen beliebig auf mehrere Server zu verteilen, und ist damit die Grundlage für Skalierbarkeit.

Einheitliche Schnittstelle. Adressierung, Methoden und Fehlermeldungen folgen überall denselben Regeln. Wer eine REST API eines Anbieters verstanden hat, findet sich in der nächsten schnell zurecht.

Trennung von Client und Server. Beide Seiten können unabhängig voneinander weiterentwickelt werden, solange der vereinbarte Vertrag eingehalten wird.

Eine Schnittstelle, die HTTP nutzt, aber diese Bedingungen ignoriert, wird oft trotzdem REST API genannt. Fachlich korrekt wäre die Bezeichnung RESTful nur, wenn die Bedingungen tatsächlich erfüllt sind.

HTTP-Methoden und ihre Bedeutung

Die Methode bestimmt, was mit einer Ressource geschehen soll.

MethodeZweckWiederholbar ohne Nebenwirkung
GETDaten lesenja
POSTNeuen Datensatz anlegennein
PUTDatensatz vollständig ersetzenja
PATCHDatensatz teilweise ändernnein
DELETEDatensatz löschenja

Die letzte Spalte ist wichtiger, als sie aussieht. Bricht eine Verbindung ab, weiß der aufrufende Client nicht, ob die Anfrage angekommen ist. Bei GET, PUT und DELETE darf er es einfach erneut versuchen. Bei POST kann ein zweiter Versuch einen doppelten Datensatz erzeugen, weshalb an dieser Stelle zusätzliche Absicherung nötig ist.

Statuscodes richtig verwenden

Der Statuscode einer Antwort sagt dem aufrufenden System, wie es weitergehen soll. Vier Gruppen sind gebräuchlich.

  • 2xx signalisiert Erfolg, etwa 200 für eine gelieferte Antwort oder 201 für einen angelegten Datensatz.
  • 4xx verweist auf einen Fehler beim Aufrufer, etwa 400 bei fehlerhaften Daten, 401 bei fehlender Anmeldung oder 404 bei unbekannter Ressource.
  • 5xx verweist auf einen Fehler im angesprochenen System.
  • 3xx zeigt an, dass die Ressource an anderer Stelle liegt.

Ein häufiger Fehler in gewachsenen Systemen besteht darin, jede Antwort mit Code 200 auszuliefern und den eigentlichen Fehler nur im Text zu nennen. Automatisierte Überwachung wird dadurch blind, weil sie Störungen nicht mehr von Normalbetrieb unterscheiden kann. Wie sich ein solcher Betrieb überwachen lässt, beschreibt der Eintrag zum Monitoring.

REST API und Sicherheit

Eine REST API ist per Definition über das Netz erreichbar und damit angreifbar. Drei Punkte entscheiden über das Schutzniveau.

Authentifizierung und Autorisierung. Die Schnittstelle muss wissen, wer anfragt, und getrennt davon prüfen, ob diese Stelle den angefragten Datensatz überhaupt sehen darf. Üblich sind zeitlich befristete Zugangstoken.

Verschlüsselter Transport. Zugangsdaten und Nutzdaten gehören ausschließlich über TLS übertragen.

Begrenzung der Aufrufe. Ohne Obergrenze je Aufrufer lässt sich eine Schnittstelle durch massenhafte Anfragen lahmlegen oder systematisch nach Daten durchsuchen.

Für Betreiber kritischer Infrastrukturen kommt hinzu, dass Schnittstellen zu den nachweispflichtigen Bestandteilen des Sicherheitskonzepts gehören. Welche Anforderungen daraus folgen, ordnet die Kompetenzseite zu NIS-2 ein. Die technische Absicherung im Zusammenspiel mehrerer Schnittstellen übernimmt häufig ein API-Gateway.

Wann sich REST eignet und wann nicht

REST spielt seine Stärken aus, wenn überschaubare Datenmengen zwischen Systemen ausgetauscht werden, wenn viele verschiedene Clients dieselbe Schnittstelle nutzen und wenn die Schnittstelle langfristig stabil bleiben soll.

An Grenzen stößt der Ansatz in drei Fällen. Werden für eine einzige Bildschirmansicht Daten aus zehn Ressourcen benötigt, entstehen zehn Aufrufe, was auf mobilen Verbindungen spürbar wird. Sollen Ereignisse sofort beim Client ankommen, passt das anfragegetriebene Modell nicht, hier sind Streaming-Verfahren geeigneter. Und bei sehr großen Datenmengen ist ein Dateiaustausch oft effizienter als eine seitenweise Abfrage.

Alternativen sind GraphQL, das gezielte Abfragen über mehrere Ressourcen hinweg erlaubt, sowie SOAP, das in älteren Fachverfahren und im Behördenumfeld weiterhin verbreitet ist. Eine Gegenüberstellung verschiedener Integrationswege bietet der Eintrag zu Schnittstellen, die praktische Umsetzung beschreibt die Schnittstellenprogrammierung.

Dokumentation und Versionierung

Eine Schnittstelle ohne verlässliche Dokumentation verursacht dauerhaft Aufwand, weil jede anschließende Integration Rückfragen erzeugt. Verbreitet ist die OpenAPI-Spezifikation, aus der sich Dokumentation und Testwerkzeuge automatisch erzeugen lassen.

Ebenso wichtig ist ein Umgang mit Änderungen. Sobald eine REST API von Systemen genutzt wird, die nicht selbst betreut werden, dürfen bestehende Felder nicht ohne Vorlauf entfallen. Üblich ist eine Versionierung im Pfad, etwa /v1/vorgaenge, verbunden mit einer angekündigten Frist für die Ablösung alter Stände.

Bedeutung für die Systemlandschaft

Der Wert einer REST API zeigt sich selten am Tag ihrer Fertigstellung, sondern in den Jahren danach. Sie entscheidet darüber, wie teuer der Anschluss des nächsten Systems wird und ob ein Fachverfahren ohne Neuentwicklung um zusätzliche Funktionen ergänzt werden kann. Eine sauber geschnittene REST API ist damit weniger eine technische Detailfrage als eine Weichenstellung für die Wartbarkeit der gesamten Landschaft. Wer bestehende Anwendungen verbinden oder eine neue Schnittstelle konzipieren möchte, findet in der individuellen Softwareentwicklung den passenden Rahmen.

Aktuelle Themen