Was ist eine REST-API?
- IAM-Glossar
- Was ist eine REST-API?
Eine REST-API (Representational State Transfer Application Programming Interface), auch RESTful-API genannt, ist eine webbasierte Anwendungsprogrammierschnittstelle (API), die häufig zur Entwicklung von Webdiensten und mobilen Apps verwendet wird.
Was ist eine API?
Bevor wir uns näher mit RESTful-APIs befassen, müssen wir zunächst verstehen, was eine API ist.
Eine API ist eine Reihe von Protokollen und Routinen, mit denen verschiedene Systeme und Anwendungen kommunizieren können, ohne dass Entwickler oder Endbenutzer wissen müssen, wie sie implementiert sind. Durch die Nutzung von APIs können Entwickler einfach und schnell wiederverwendbare Web- und Software-Anwendungen erstellen.
Es gibt unterschiedliche Arten von APIs für die verschiedensten Anwendungsfälle. REST-APIs werden häufig zum Erstellen webbasierter APIs verwendet und sind ein wichtiger Bestandteil der modernen Webentwicklung.
Wofür steht REST?
REST steht für „Representational State Transfer“. Es bezeichnet einen Stil zum Erstellen von Webdiensten, der für verschiedene Computersysteme eine standardisierte Kommunikationsmöglichkeit über das Internet schafft. REST basiert auf einer Reihe von Designprinzipien und nicht auf einer bestimmten Technologie oder einem bestimmten Protokoll. REST wird häufig beim Erstellen webbasierter APIs verwendet.
Ein Hauptmerkmale von REST ist die Verwendung von HTTP-Methoden wie GET, POST, PUT und DELETE, mit denen verschiedene Vorgänge dargestellt werden, die auf Ressourcen ausgeführt werden können. Bei diesen Ressourcen kann es sich um Daten oder Funktionen handeln, die vom Webdienst und normalerweise in einem standardisierten Datenformat wie JSON bereitgestellt werden.
Eine REST-API ist zustandslos, was bedeutet, dass jede Anfrage vom Client alle Informationen enthält, die zum Abschließen der Anfrage erforderlich sind, und der Server zwischen den Anfragen keinen Client-Kontext speichert. Dadurch sind REST-APIs flexibel, skalierbar und einfach zu cachen.
Funktionsweise von RESTful-APIs
Analog zu anderen APIs funktionieren RESTful-APIs, indem sie für verschiedene Computersysteme eine standardisierte Möglichkeit bieten, um über das Internet miteinander zu kommunizieren. Insbesondere stellen REST-APIs Ressourcen bereit, auf die Apps und Dienste von Drittanbietern zugreifen und die sie mithilfe von Standard-HTTP-Methoden bearbeiten können. Diese Ressourcen können alle Arten von Daten oder Funktionen sein, die die API bereitstellt, so z. B. Benutzerdaten, Produktdaten oder Suchergebnisse.
Um auf eine Ressource in einer RESTful-API zuzugreifen, sendet ein Client eine HTTP-Anfrage an einen bestimmten Endpunkt, bei dem es sich um eine URL handelt, die die Ressource identifiziert. Die Anfrage enthält je nach Anfragetyp meist zusätzliche Informationen wie Parameter, Header und einen Nachrichtentext.
Der Server verarbeitet die Anfrage, und wenn dies erfolgreich ist, sendet er eine HTTP-Antwort zurück an den Client. Diese Antwort enthält typischerweise einen Statuscode, der angibt, ob die Anfrage erfolgreich war oder nicht, sowie einen Nachrichtentext, der die angeforderte Ressource in einem standardisierten Format bereitstellt.
Da REST-APIs zustandslos sind, verfolgt der Server keinen Client-Status zwischen Anfragen. Jede einzelne Client-Anfrage enthält alle Informationen, die zum Generieren einer Antwort erforderlich sind.
Vorteile von REST-APIs
Die Verwendung von RESTful-APIs zum Erstellen von Webdiensten und datengesteuerten Anwendungen bietet zahlreiche Vorteile:
Skalierbar: RESTful-APIs sind so konzipiert, dass sie skalierbar sind. D. h. sie können eine große Anzahl von Anfragen verarbeiten und Traffic-Spitzen bewältigen. Sie verwenden eine einfache, schlanke Architektur, über die sich neue Funktionen oder Ressourcen einfach hinzufügen lassen, ohne dass das gesamte System umgestaltet werden muss.
Flexibel: RESTful-APIs sind flexibel und können mit einer Vielzahl von Programmiersprachen und Technologien verwendet werden. Sie sind nicht an eine bestimmte Plattform oder Sprache gebunden. Dies hat den Vorteil, dass sie von Clients auf verschiedenen Betriebssystemen und Geräten ausgeführt werden können.
Benutzerfreundlich: RESTful-APIs sind einfach zu verwenden und können mit Standard-HTTP-Methoden aufgerufen werden, was sie für Entwickler aller Erfahrungsstufen attraktiv macht. Sie bieten eine standardisierte Kommunikationsmöglichkeit für verschiedene Systeme, was die Entwicklungszeit verkürzen, die Produktivität verbessern und die Time-to-Market minimieren kann.
Zustandslos: Aufgrund der Tatsache, dass RESTful-APIs zustandslos sind, sind sie zuverlässiger und einfacher zwischenzuspeichern. Dies kann dazu beitragen, die Latenz zu verringern und die Leistung zu verbessern.
Sicherheit: RESTful-APIs können mit einer Vielzahl von Techniken gesichert werden, z. B. SSL/TLS-Verschlüsselung und OAuth-Authentifizierung. Dadurch wird sichergestellt, dass die API vor unbefugtem Zugriff geschützt ist und dass Kundendaten sicher aufbewahrt werden.
Bewährte methoden für rest-APIs
Hier haben wir einige Tipps für das Erstellen und Implementieren gut strukturierter, robuster RESTful-APIs zusammengestellt, die zugleich einfach zu verwenden, zuverlässig und sicher sind.
HTTP-Methoden richtig verwenden: Verwenden Sie die entsprechenden HTTP-Methoden (wie GET, POST, PUT, PATCH oder DELETE), um gemäß der HTTP-Spezifikation verschiedene Vorgänge für Ressourcen auszuführen. Verwenden Sie beispielsweise GET, um eine Ressource abzurufen, POST, um eine neue Ressource zu erstellen, PUT, um eine vorhandene Ressource zu aktualisieren, und DELETE, um eine Ressource zu löschen.
Aussagekräftige URLs verwenden: Verwenden Sie URLs, die einfach zu lesen und zu verstehen sind und einen klaren Hinweis auf die enthaltene Ressource geben. Vermeiden Sie kryptische oder bedeutungslose URLs, die schwer zu merken oder zu erfassen sind.
JSON als Datenformat verwenden: Während RESTful-APIs API-Anforderungen in mehreren Datenformaten annehmen und beantworten können, ist JSON de facto der moderne Standard zum Senden und Empfangen von API-Daten. Dies liegt daran, dass das Decodieren und Codieren von XML oder reinem Text ein echter Aufwand sein kann und einige Frameworks diese Formate nicht einmal mehr unterstützen.
Substantive statt Verben in Endpunkt-URLs verwenden: Verwenden Sie https://www.beispiel.de/Beiträge, statt https://www.beispiel.de/Beiträgeabrufen oder https://www.beispiel.de/Beitragerstellen. Dies liegt daran, dass HTTP-Methoden wie GET, POST, PUT, PATCH und DELETE bereits in Verbform vorliegen. Die Verwendung eines Substantivs gibt an, was der Endpunkt tatsächlich generiert.
Werden Sie bei Antwortcodes nicht kreativ: Verwenden Sie standardmäßige HTTP-Antwortcodes, um den Status einer Anfrage anzugeben, z. B. 200 für Erfolg, 404 für nicht gefunden und 500 für Serverfehler. Dies erleichtert es dem Kunden, das Ergebnis seiner Anfrage zu verstehen und geeignete Maßnahmen zu ergreifen.
Genügend Informationsmaterial bereitstellen: Stellen Sie eine klare und detaillierte Dokumentation für Ihre API bereit, einschließlich Informationen zu den verfügbaren Ressourcen, den Datenformaten und den unterstützten Vorgängen. Dies erleichtert es Entwicklern, Ihre API zu verstehen und zu verwenden.
Versionierung implementieren: Dadurch stellen Sie sicher, dass Änderungen an der API vorhandenen Anwendungen nicht schadet. Sie werden nicht gezwungen, auf die neue Version umzusteigen.
Fehlerdetails im Antworttext zurückgeben: Entwickler werden es Ihnen danken, wenn Ihre API Fehlerdetails, einschließlich des betroffenen Felds, im JSON- oder Antworttext zurückgibt. Dies ist immer eine große Hilfe beim Debuggen von Apps.
API schützen: Implementieren Sie Sicherheitsmaßnahmen wie SSL/TLS-Verschlüsselung, Ratenbegrenzung und Client-Authentifizierungskontrollen, um sicherzustellen, dass Angreifer Ihre API nicht manipulieren oder sie in einem DDoS-Angriff lahmlegen können.