
REST-APIs
REST-APIs
Was ist eine REST-API?
Eine API oder Anwendungsprogrammierschnittstelle besteht aus einer Gruppe von Regeln, die definieren, wie Anwendungen oder Einheiten eine Verbindung zu einander herstellen und miteinander kommunizieren können. Eine REST-API ist eine API, die den Design-Grundsätzen der REST-Architektur (Representational State Transfer) entspricht. Aus diesem Grund werden REST-APIs manchmal auch als RESTful APIs bezeichnet.
REST wurde erstmals im Jahr 2000 von dem Informatiker Dr. Roy Fielding in seiner Dissertation definiert und bietet Entwicklern ein relativ hohes Maß an Flexibilität und Freiheit. Diese Flexibilität ist nur einer der Gründe, warum sich REST-APIs als gängige Methode zur Verbindung von Komponenten und Anwendungen in einer Mikroservices-Architektur etabliert haben.
REST-Designprinzipien
Auf der einfachsten Ebene ist eine API ein Mechanismus, der es einer Anwendung oder einem Dienst ermöglicht, auf eine Ressource innerhalb einer anderen Anwendung oder eines anderen Dienstes zuzugreifen. Die Anwendung oder der Dienst, der den Zugriff vornimmt, wird als Client bezeichnet, und die Anwendung oder der Dienst, der die Ressource enthält, als Server.
Einige APIs, wie SOAP oder XML-RPC, legen den Entwicklern einen strengen Entwicklungsrahmen auf. REST-APIs können jedoch mit praktisch jeder Programmiersprache entwickelt werden und unterstützen eine Vielzahl von Datenformaten. Die einzige Voraussetzung ist, dass sie den folgenden sechs REST-Design-Prinzipien entsprechen, die auch als architektonische Einschränkungen bekannt sind:
- Einheitliche Schnittstelle. Alle API-Anforderungen für dieselbe Ressource sollten gleich aussehen, unabhängig davon, woher die Anforderung kommt. Die REST-API sollte sicherstellen, dass ein und derselbe Datenteil, z. B. der Name oder die E-Mail-Adresse eines Benutzers, nur zu einem einzigen Uniform Resource Identifier (URI) gehört. Die Ressourcen sollten nicht zu umfangreich sein, aber alle Informationen enthalten, die der Client benötigen könnte.
- Entkopplung von Client und Server. Bei der Gestaltung von REST-APIs müssen Client- und Serveranwendungen völlig unabhängig voneinander sein. Die einzige Information, die die Client-Anwendung kennen sollte, ist der URI der angeforderten Ressource. Diese kann nicht auf andere Weise mit der Server-Anwendung interagieren. In ähnlicher Weise sollte eine Serveranwendung die Client-Anwendung nicht verändern, außer dass sie ihr die angeforderten Daten über HTTP übermittelt.
- Statusunabhängigkeit. REST-APIs sind statusunabhängig, d. h. jede Anfrage muss alle für ihre Bearbeitung erforderlichen Informationen enthalten. Mit anderen Worten: REST-APIs erfordern keine serverseitigen Sitzungen. Serveranwendungen dürfen keine Daten speichern, die sich auf eine Client-Anfrage beziehen.
- Zwischenspeicherfähigkeit. Wenn möglich, sollten die Ressourcen auf der Client- oder Serverseite zwischengespeichert werden können. Server-Antworten müssen auch Informationen darüber enthalten, ob die Zwischenspeicherung für die gelieferte Ressource erlaubt ist. Ziel ist es, die Leistung auf der Clientseite zu verbessern und gleichzeitig die Skalierbarkeit auf der Serverseite zu erhöhen.
- Mehrschichtige Systemarchitektur. Bei REST-APIs durchlaufen die Aufrufe und Antworten verschiedene Schichten. Als Faustregel gilt: Gehen Sie nicht davon aus, dass die Client- und Serveranwendungen direkt miteinander verbunden sind. In der Kommunikationsschleife kann es eine Reihe von verschiedenen Vermittlern geben. REST-APIs müssen so konzipiert sein, dass weder der Client noch der Server erkennen kann, ob er mit der Endanwendung oder einem Vermittler kommuniziert.
- Code auf Abruf (optional). REST-APIs senden in der Regel statische Ressourcen, aber in bestimmten Fällen können die Antworten auch ausführbaren Code enthalten (z. B. Java-Applets). In diesen Fällen sollte der Code nur auf Abruf ausgeführt werden.
Funktionsweise von REST-APIs
REST-APIs kommunizieren über HTTP-Anfragen, um Standarddatenbankfunktionen wie das Erstellen, Lesen, Aktualisieren und Löschen von Datensätzen (auch als CRUD bezeichnet) innerhalb einer Ressource auszuführen. Eine REST-API würde beispielsweise eine GET-Anforderung verwenden, um einen Datensatz abzurufen, eine POST-Anforderung, um einen Datensatz zu erstellen, eine PUT-Anforderung, um einen Datensatz zu aktualisieren, und eine DELETE-Anforderung, um einen Datensatz zu löschen. Alle HTTP-Methoden können in API-Aufrufen verwendet werden. Eine gut konzipierte REST-API ist vergleichbar mit einer Website, die in einem Webbrowser mit integrierter HTTP-Funktionalität läuft.
Der Status einer Ressource zu einem bestimmten Zeitpunkt, oder Zeitstempel, wird als Ressourcendarstellung bezeichnet. Diese Informationen können in praktisch jedem Format an einen Client übermittelt werden, einschließlich JavaScript Object Notation (JSON), HTML, XLT, Python, PHP oder einfachem Text. JSON ist beliebt, weil es sowohl von Menschen als auch von Maschinen gelesen werden kann und unabhängig von Programmiersprachen ist.
Anforderungsheader und -parameter sind bei REST-API-Aufrufen ebenfalls wichtig, da sie wichtige Identifizierungsinformationen wie Metadaten, Berechtigungen, Uniform Resource Identifiers (URIs), Caching, Cookies und mehr enthalten. In gut konzipierten REST-APIs werden Anforderungsheader und Antwortheader zusammen mit den herkömmlichen HTTP-Statuscodes verwendet.
Bewährte REST-API-Verfahren
Obwohl Flexibilität ein großer Vorteil des REST-API-Designs ist, macht es dieselbe Flexibilität es leider auch einfach, eine API zu entwerfen, die nicht oder schlecht funktioniert. Aus diesem Grund tauschen professionelle Entwickler bewährte Verfahren bei REST-API-Spezifikationen aus.
Die OpenAPI-Spezifikation (OAS) legt eine Schnittstelle fest, mit der eine API so beschrieben werden kann, dass jeder Entwickler oder jede Anwendung sie erkennen und ihre Parameter und Fähigkeiten vollständig verstehen kann, z. B. verfügbare Endpunkte, zulässige Operationen an jedem Endpunkt, Operationsparameter, Authentifizierungsmethoden und andere Informationen. Die neueste Version, OAS3 (Link befindet sich außerhalb von IBM), enthält praktische Tools wie den OpenAPI Generator, um API-Clients und Server-Stubs in verschiedenen Programmiersprachen zu erzeugen.
Die Sicherung einer REST-API beginnt ebenfalls mit bewährten Verfahren der Branche, wie der Verwendung von Hash-Algorithmen für die Passwortsicherheit und HTTPS für die sichere Datenübertragung. Ein Berechtigungsframework wie OAuth 2.0 (Link befindet sich außerhalb von IBM) kann helfen, die Privilegien von Drittanbieter-Anwendungen zu begrenzen. Mit Hilfe eines Zeitstempels im HTTP-Header kann eine API auch jede Anforderung ablehnen, die nach einer bestimmten Zeitspanne eingeht. Parameterüberprüfung und JSON-Web-Tokens sind weitere Möglichkeiten, um sicherzustellen, dass nur autorisierte Clients auf die API zugreifen können.
REST-APIs und IBM Cloud
Die Vorteile von REST-APIs bedeuten, dass sie auch in Zukunft ein integraler Bestandteil des Softwareentwicklungsprozesses sein werden, besonders weil die Nachfrage nach besseren Kundenerlebnissen und mehr Anwendungen positive Auswirkungen auf den Geschäfts- und IT-Betrieb hat.
Wenn es darum geht, diese Anforderungen zu erfüllen, wird eine stärkere Automatisierung hilfreich sein. Im Idealfall beginnen Sie mit kleinen, messbar erfolgreichen Projekten, die Sie dann skalieren und für andere Prozesse und andere Bereiche Ihres Unternehmens optimieren können. Durch die Zusammenarbeit mit IBM haben Sie Zugriff auf KI-gestützte Automatisierungsfunktionen, einschließlich vorgefertigter Workflows, um Innovationen zu beschleunigen, indem Sie jeden Prozess intelligenter gestalten.
Die Tools und Services von IBM unterstützen Sie bei der Bewältigung wichtiger Probleme im Zusammenhang mit APIs, einschließlich Sicherheit, Governance und Automatisierung, während Sie Ihre Anwendungen weiter modernisieren.
Machen Sie den nächsten Schritt:
- Informieren Sie sich über das IBM Cloud Pak for Integration, das auf den Kernfunktionen von IBM API Connect aufbaut und Architekten und Administratoren die volle Kontrolle über den API-Lebenszyklus ermöglicht.
- Besuchen Sie die IBM Cloud API Docs, die die Dokumentation für die von IBM Cloud unterstützten APIs enthalten.
- Nehmen Sie an unserer Bewertung der Integrationsreife teil, um Ihre Integrationsreife in kritischen Dimensionen zu bewerten und die Aktionen zu ermitteln, die Sie ergreifen können, um auf die nächste Stufe zu gelangen.
- Laden Sie unseren Leitfaden zur agilen Integration herunter, in dem die Vorzüge eines containerbasierten, dezentralen und auf Microservices ausgerichteten Ansatzes für die Integration von Lösungen untersucht werden.
Beginnen Sie noch heute mit einem IBM Cloud-Konto.