In der vernetzten Welt der Softwareanwendungen ist der Datenaustausch zwischen Systemen zum Eckpfeiler der Funktionalität und Servicevielfalt geworden. Ein Schlüsselfaktor, der diesen Datenaustausch und die Datenkommunikation revolutioniert hat, sind REST APIs, die als Enabler für Integrationen fungieren. (Keine Sorge – wenn Sie sich fragen: Was ist eine REST API? Ich habe es für Sie.)
Diese APIs bieten eine standardisierte Möglichkeit für die Kommunikation zwischen zwei Anwendungen. Dadurch kann Ihre Software effizient mit verschiedenen anderen Diensten interagieren und so ihre Funktionen und das Benutzererlebnis verbessern.
In diesem Handbuch erkläre ich, was eine REST API ist und warum sie so nützlich ist.
Bevor Sie beginnen, sollten Sie wissen, was APIs sind und wie sie funktionieren. Wenn Sie Ihr Wissen auffrischen möchten, empfehle ich Ihnen daher, zunächst diesen Beitrag durchzulesen.
Was ist eine REST API?
Um zu verstehen, was eine REST API ist, müssen wir einige Schlüsselbegriffe durchgehen.
- Ein Client ist eine Person oder ein Programm, das die API verwendet. Der Client stellt Anfragen an die API, um Informationen abzurufen oder etwas innerhalb der Anwendung zu ändern. Ihr Webbrowser ist ein Client – er interagiert mit APIs verschiedener Websites, um Seiteninhalte von ihnen abzurufen. Die angeforderten Informationen werden an Ihren Browser zurückgesendet und auf Ihrem Bildschirm angezeigt.
- Eine Ressource ist jede Information, die die API dem Client bereitstellen kann. Eine Ressource in der API von Facebook könnte beispielsweise ein Benutzer, eine Seite, ein Foto oder ein Beitrag sein. Jede Ressource hat einen eindeutigen Namen, den sogenannten Ressourcenbezeichner.
- Ein Server wird von der Anwendung verwendet, die Clientanforderungen empfängt und vom Client benötigte Ressourcen enthält. Der Server verfügt über eine API zur Interaktion mit Clients, ohne ihnen direkten Zugriff auf in seiner Datenbank gespeicherte Inhalte zu gewähren.
Funktionsweise von RESTful APIs
Nun zu unserer Definition. REST ist eine Reihe von Richtlinien, die Software zur Kommunikation über das Internet verwenden kann, um Integrationen einfach und skalierbar zu gestalten. Eine REST API (auch „RESTful“-API genannt) ist ein bestimmter API-Typ, der diesen Richtlinien folgt.
REST steht für Representational State Transfer . Wenn ein Client über eine REST API eine Ressource anfordert, überträgt der Server den aktuellen Status der Ressource in einer standardisierten Darstellung zurück .
Mit anderen Worten: REST APIs arbeiten, indem sie Anfragen für eine Ressource entgegennehmen und alle relevanten Informationen über die Ressource zurückgeben, übersetzt in ein Format, das Clients leicht interpretieren können (dieses Format wird von der API bestimmt, die die Anfragen empfängt). Clients können über eine REST API auch Elemente auf dem Server ändern und sogar neue Elemente zum Server hinzufügen.
Um zu lernen, was eine REST API ist, kann es hilfreich sein, ein Beispiel durchzugehen. Angenommen, ich möchte ein Programm erstellen, das sich in YouTube integrieren lässt. Mein Programm (der Client) kann die REST API von YouTube nach Informationen zu einem bestimmten Video (einer Ressource) fragen. Die API von YouTube antwortet auf meine Anfrage mit dem Ressourcenstatus, der Attribute wie den Videonamen, das Veröffentlichungsdatum und die Anzahl der Aufrufe sowie den Videolink enthält, alles in einem Format, das mein Programm schnell analysieren und verwenden kann. Mein Programm könnte über die API auch ein Video auf meinem persönlichen YouTube-Kanal veröffentlichen (d. h. eine neue Ressource hinzufügen).
Nachdem wir nun die Vorteile von REST APIs kennen, wollen wir im Detail darauf eingehen, was REST APIs von anderen API-Typen unterscheidet.
Die sechs Regeln der REST APIs
Um die Funktionalität von REST voll auszunutzen, müssen APIs sechs Anforderungen erfüllen. (Technisch gesehen sind fünf davon erforderlich und eine ist optional.) Jede dieser Anforderungen legt den Grundstein für eine schnelle und vielseitige API.
1. Client-Server-Trennung
In der REST-Architektur können Client und Server nur auf eine Weise interagieren: Der Client sendet eine Anfrage an den Server, der Server sendet dann eine Antwort an den Client zurück. Server können keine Anfragen stellen und Clients können nicht antworten – alle Interaktionen werden vom Client initiiert.
Durch die Vereinfachung der Kommunikation zwischen Clients und Servern sorgen RESTful APIs dafür, dass beide Systeme unabhängig bleiben. Auf diese Weise kann die Client-Software ihre Builds erweitern, ohne sich Gedanken über Auswirkungen auf andere Server machen zu müssen, und Serverinhalte können geändert werden, ohne dass dies versehentlich Auswirkungen auf Clients hat.
2. Einheitliche Schnittstelle
Diese Richtlinie besagt, dass alle Anfragen und Antworten einem gemeinsamen Protokoll oder einer bestimmten Art der Nachrichtenformatierung folgen müssen. Anwendungen und Server sind in den unterschiedlichsten Sprachen geschrieben, die ohne Vermittler nicht besonders gut zusammenarbeiten. Eine einheitliche Schnittstelle ist eine gemeinsame Sprache für jeden Client zur Kommunikation mit jeder REST API.
Ohne standardisierte Kommunikation wäre die Übersetzung von Anfragen und Antworten zwischen Software ein einziges Chaos. Kleine Unstimmigkeiten würden dazu führen, dass Informationen durcheinandergeraten und verloren gehen, und Anwendungen müssten ihre Anfrageprozesse aktualisieren, wenn APIs ihre aktualisieren. Eine einheitliche Schnittstelle schließt diese Möglichkeit aus.
Für die meisten REST APIs ist diese gemeinsame Sprache HTTP oder Hyper-Text Transfer Protocol. HTTP wurde nicht speziell für REST erstellt. Vielmehr hat REST dieses Kommunikationsprotokoll als Standard für Anwendungen übernommen, die es verwenden.
Um HTTP mit einer REST API zu verwenden, sendet der Client eine Anfrage in einem bestimmten Format, das Ihnen vielleicht bekannt vorkommt. Eine Anfrage an die YouTube-API für Videodaten sieht beispielsweise so aus:
Wie alle Anfragen an eine REST API enthält diese Anfrage zwei Informationen:
- GET ist die HTTP-Methode. Sie gibt die Aktion an, die der Client für die Ressource ausführen möchte. Es gibt vier grundlegende HTTP-Anfragen, die ein Client stellen kann:
- GET: Zum Abrufen einer Ressource.
- POST: Zum Erstellen einer neuen Ressource.
- PUT: Zum Bearbeiten oder Aktualisieren einer vorhandenen Ressource.
- LÖSCHEN: Zum Löschen einer Ressource.
- https://… ist die URL. Die URL enthält den Uniform Resource Identifier (URI), der die Zielressource angibt.
In diesem Fall wird die URL auch als Endpunkt bezeichnet , da es sich dabei um den Ort handelt, an dem die API tatsächlich mit dem Client interagiert.
Nach dem Empfang und der Validierung der Anfrage gibt der Host Informationen über die Zielressource zurück. Normalerweise werden die Informationen in einem Format namens JSON zurückgesendet, was für JavaScript Object Notation steht . JSON legt den gesamten Inhalt einer Ressource in einem einfachen Format dar, das Menschen problemlos lesen können.
Diese Seite in der API-Dokumentation von YouTube zeigt das Format einer in JSON formatierten YouTube-Videoressource. Können Sie einige der verschiedenen bereitgestellten Ressourcen identifizieren?
3. Staatenlos
Alle Aufrufe einer REST API müssen zustandslos sein. Das bedeutet, dass jede Interaktion unabhängig ist und jede Anfrage und Antwort alle Informationen liefert, die zum Abschließen der Interaktion erforderlich sind. Jede Anfrage des Clients wird vom Server als brandneue Anfrage interpretiert – der Server merkt sich nichts über frühere Anfragen.
Zustandslose Übertragungen reduzieren den benötigten Serverspeicher erheblich und verbessern die Chancen auf eine erfolgreiche Antwort, da der Server keine zusätzlichen Aktionen ausführen muss, um alte Daten abzurufen. Dadurch wird sichergestellt, dass diese Interaktionen skalierbar sind: Wenn die Software wächst und mehr Anfragen stellt, müssen sich Entwickler keine Sorgen machen, dass deutlich mehr Speicher verwendet wird oder der Server mit Anfragen überlastet wird.
4. Schichtsystem
Bisher habe ich API-Anfragen als einfache Interaktion zwischen einem Client und einem Server beschrieben, aber das ist eine etwas vereinfachte Darstellung. In Wirklichkeit gibt es zwischen diesen beiden Einheiten normalerweise mehrere Server. Diese Server oder Schichten sind da, um Sicherheit zu bieten, den Datenverkehr abzuwickeln und zu verteilen oder bei einer Reihe anderer wichtiger Funktionen zu helfen.
Dieses Prinzip erfordert, dass Nachrichten zwischen Client und Zielserver immer gleich formatiert und verarbeitet werden, unabhängig von den dazwischen liegenden Schichten. Zusätzliche Schichten sollten die Client-Server-Interaktionen nicht beeinträchtigen.
Wenn Entwickler diese Richtlinie befolgen, können Serversysteme neu angeordnet, aktualisiert oder anderweitig geändert werden, ohne dass dies Auswirkungen auf die Kernanforderungs-/Antwortfunktion hat.
5. Zwischenspeicherbar
Caching findet statt, wenn beim Besuch einer Website Medien auf dem Gerät eines Clients gespeichert werden. Wenn ein Client zu dieser Site zurückkehrt, werden die zwischengespeicherten Daten schnell aus dem lokalen Speicher geladen, anstatt erneut vom Server abgerufen zu werden. Caching spart Serverressourcen und Bandbreite und verkürzt gleichzeitig die Seitenladezeit, weshalb die meisten großen Websites es verwenden.
REST APIs werden unter Berücksichtigung der Datenzwischenspeicherung erstellt. Wenn ein Server seine Antwort an einen Client sendet, sollte die Antwort angeben, ob die bereitgestellte Ressource zwischengespeichert werden kann und für wie lange.
6. Code auf Anfrage (optional)
Das letzte REST-Prinzip ist optional. Auf Wunsch kann eine API in ihrer Antwort Computercode an Clients senden. Dies ermöglicht es dem Client, den Code in seinem eigenen Backend auszuführen.
Solange eine API diesen Regeln entspricht, gilt sie als RESTful. Allerdings lassen diese Regeln Entwicklern viel Spielraum, die Funktionalität ihrer API anzupassen. Diese Flexibilität unterscheidet REST APIs von einer anderen gängigen Web-API-Methode, dem Simple Object Access Protocol (SOAP).
REST API vs. SOAP-API
REST wird normalerweise mit SOAP verglichen, einer anderen Möglichkeit zum Erstellen von Anwendungen, die über HTTP funktionieren. Der Hauptunterschied zwischen REST und SOAP besteht darin, dass REST ein Satz von Richtlinien ist und SOAP ein Protokoll. REST ermöglicht das Erstellen von APIs mit jeder Methode, einschließlich HTTP, URLs und JSON. SOAP verwendet nur XML zum Senden von Daten.
REST gilt als einfachere und effizientere Alternative zu SOAP, da weniger Code zum Erledigen von Aufgaben geschrieben werden muss und es einer weniger starren Struktur und Logik folgt als SOAP. Darüber hinaus legt REST Leitplanken für das API-Design fest, überlässt aber viele Entscheidungen dem Entwickler, der die API erstellt.
Warum REST APIs verwenden?
Das REST-Framework wurde im Jahr 2000 vom Informatiker Roy Fielding eingeführt und beeinflusst, wie wir Inhalte online anzeigen, ändern und übertragen. Viele der beliebtesten Web- und Cloud-Unternehmen verwenden REST APIs für ihre Anwendungen, darunter Facebook, YouTube, Twitter und Google.
Aber warum REST? Im Grunde ist es ein hervorragendes System für Webanwendungen. Hier sind die wichtigsten Vorteile dieser Art von API:
- REST APIs sind flexibel. Sie können viele Arten von Anfragen verarbeiten und Daten in vielen verschiedenen Formaten senden.
- REST APIs sind skalierbar. Sie sind für die Kommunikation zwischen zwei beliebigen Softwarekomponenten konzipiert, unabhängig von Größe oder Leistungsfähigkeit. Wenn eine Webanwendung wächst und mehr Ressourcen hinzufügt, kann ihre REST API die zunehmende Menge und Vielfalt von Anfragen schnell verarbeiten.
- REST APIs integrieren vorhandene Webtechnologien und sind daher relativ einfach zu erstellen und zu verwenden. Um eine Ressource über eine REST API anzufordern, müssen Sie nur ihre URL angeben.
Vorteile von REST APIs
Sie überlegen also, REST APIs zu verwenden, möchten aber zunächst mehr über die damit verbundenen Vorteile erfahren. Ich habe alles für Sie – und schnallen Sie sich an, denn die vielen Vorteile werden Sie beeindrucken.
REST APIs unterstützen die Kommunikation zwischen Systemen und Anwendungen.
Unabhängig von den Technologien, auf denen sie basieren, können Systeme und Anwendungen mithilfe von REST APIs nahtlos miteinander kommunizieren. Interoperabilität ist der Schlüssel zum Erfolg, denn das bedeutet, dass Sie keine neuen Lösungen entwickeln müssen, damit Ihre Tools kommunizieren können.
Ein weiteres Markenzeichen von REST APIs ist ihre Flexibilität. Dies macht sie wiederum zu einer attraktiven Option für Leute, deren APIs eine Vielzahl von Datentypen unterstützen müssen.
REST APIs zeigen, dass einfacher besser ist.
Da REST APIs eine leicht verständliche Architektur verwenden, sind sie relativ einfach zu implementieren – selbst für Leute, die gerade erst anfangen, APIs zu verstehen und zu verwenden. Darüber hinaus werden Sie feststellen, dass REST APIs aufgrund dieser Architektur besser gewartet werden können.
Sie können REST APIs problemlos skalieren.
Da REST APIs zustandslos sind, enthält jede Anfrage eines Clients alle Informationen, die Ihr Server zur Erfüllung der Anfrage benötigt. Dies macht einen enormen Unterschied dabei, wie einfach (oder schwierig) die Skalierung ist.
REST APIs sind aus finanzieller Sicht zugänglich.
Ein weiterer großer Vorteil von REST APIs ist, dass ihre Erstellung und Wartung nicht teuer sind. Wenn Sie also Ihre Dienste erweitern möchten, dafür aber nicht viel Geld ausgeben möchten, können REST APIs Ihnen helfen, etwaige Lücken zu schließen.
So verwenden Sie eine REST API
Für Webanwendungen mit öffentlich verfügbaren APIs ist im Abschnitt „Entwickler“ ihrer Websites eine Dokumentation verfügbar. Hier finden Sie Anweisungen zum Zugriff auf die API und zur Verwendung in Verbindung mit Ihrer eigenen Software. Wenn die API nach REST-Prinzipien erstellt wurde, wird dies wahrscheinlich in der Dokumentation angegeben.
Für die Verwendung vieler APIs ist ein API-Schlüssel erforderlich . Ein API-Schlüssel ist eine eindeutige Zeichenfolge, die ein API-Anbieter einem Entwickler zur Autorisierung des Zugriffs auf seine API gibt. API-Schlüssel werden häufig mit Clientanforderungen gesendet, um den Client gegenüber dem Server zu identifizieren. Halten Sie Ihre API-Schlüssel geheim. Wenn Ihr Schlüssel in die falschen Hände gerät, könnte er scheinbar in Ihrem Namen für nicht so gute Dinge verwendet werden.
Um eine öffentliche API zu testen, verwenden Sie ein Tool wie Postman , das HTTP-Anfragen strukturieren kann . Probieren Sie verschiedene HTTP-Methoden und URLs aus und sehen Sie, was passiert.
Was ist ein REST API-Beispiel?
REST APIs sind überall im Web zu finden. Wahrscheinlich haben Sie einige davon schon einmal verwendet, ohne es zu wissen. Hier sind einige Beispiele:
Þjórsárden
Was uns gefällt: Die Twitter-API ermöglicht Drittanbieter-Anwendungen das Lesen und Schreiben von Daten und bietet vielfältige Funktionalitäten.
Am besten geeignet für: Anwendungen, die Social-Media-Funktionen integrieren möchten, insbesondere solche im Zusammenhang mit Twittern und Profilverwaltung.
Profi-Tipp: Diese API ist besonders effektiv zum Herunterladen und Analysieren großer Mengen von Tweets zu bestimmten Themen.
Erfahren Sie in unserem Handbuch mehr über die Verwendung der API von Twitter.
Was uns gefällt: Die Instagram Basic Display API bietet Zugriff auf Profilinformationen, Fotos und Videos.
Am besten für: Anwendungen mit der Integration von Funktionen zum Teilen von Fotos und Videos.
Profi-Tipp: Nutzen Sie diese API , um Benutzerinformationen abzurufen und sie für ein verbessertes Benutzererlebnis in Ihr Produkt zu integrieren.
Spotify
Was uns gefällt: Über die Web-API von Spotify können Clients Informationen zu Künstlern, Songs, Alben und Playlists anfordern.
Am besten geeignet für: Musikbezogene Anwendungen, die Funktionen für Musik-Streaming integrieren möchten.
Profi-Tipp: Verwenden Sie diese API, um Songs zu Wiedergabelisten hinzuzufügen, Musik anzuhalten und abzuspielen, Songs in der Zufallswiedergabe wiederzugeben und mehr für ein reicheres Musikerlebnis.
HubSpot
Was uns gefällt: Alle APIs von HubSpot basieren auf REST-Konventionen und sind für robuste Integrationen konzipiert.
Am besten geeignet für: Geschäftsanwendungen zur Verbesserung ihrer Marketing- und Kundenmanagementfunktionen.
Profi-Tipp: Verwenden Sie die APIs von HubSpot, um Ihrer Marketingsoftware erweiterte Funktionen hinzuzufügen und Ihre Anwendung mit anderen nützlichen Tools zu synchronisieren.
Weitere REST API-Beispiele, die Sie für Ihr Unternehmen verwenden können, finden Sie in unserer Liste unserer beliebtesten kostenlosen und offenen APIs für Vermarkter .
Bewährte Methoden für REST APIs
Um sicherzustellen, dass Ihre REST API den Standards entspricht, müssen Sie unbedingt diese Best Practices überprüfen. Ich werde sie Ihnen jetzt erläutern.
Versionieren Sie Ihre REST API.
Mein erster Tipp ist, Ihre API zu versionieren. Durch die Einbeziehung der Versionierung ermöglichen Sie die Abwärtskompatibilität mit Clients. Auf diese Weise können Sie auch die Änderungen, die Sie bei der Weiterentwicklung Ihrer REST API vornehmen, effektiv verwalten.
Mehr lesen: Der ultimative Leitfaden zu Bootstrap-CSS
Achten Sie darauf, wer Zugriff auf Ihre API hat.
Sie müssen auch darauf achten, dass geeignete Authentifizierungs- und Autorisierungsmethoden vorhanden sind. Auf diese Weise können Sie sicher sein, dass nur autorisierte Benutzer auf Ihre REST API zugreifen können. Eine Möglichkeit hierzu besteht in der Implementierung von Authentifizierungsmechanismen.
Sicherheit ist entscheidend – verwenden Sie also unbedingt Hashing-Algorithmen, um die Passwortsicherheit zu erhöhen. Ich empfehle Ihnen außerdem, einen branchenüblichen Authentifizierungsmechanismus wie OAuth zu verwenden, um sicherzustellen, dass nur autorisierte Benutzer auf Ihre API zugreifen können.
Schlafen Sie nicht im Ruhezustand
Es ist weit verbreitet, dass REST APIs bald der Industriestandard für webbasierte Kommunikation sein werden – und das aus gutem Grund. Sie ermöglichen es zwei beliebigen Online-Anwendungen, unabhängig von ihrer Größe oder Leistungsfähigkeit miteinander zu interagieren und Daten auszutauschen. Über REST kann ein kleines Startup mit einer großen Regierungsbehörde kommunizieren und umgekehrt.
Durch die Zusammenarbeit von Softwaretools können erstaunlich leistungsstarke und innovative Systeme entstehen. Daran sollte jede wachsende Online-Plattform teilhaben wollen. Wenn Sie Ihre App mit der Softwarewelt verbinden möchten, sollten Sie REST nicht vernachlässigen.
Anmerkung des Herausgebers: Dieser Beitrag wurde ursprünglich im August 2023 veröffentlicht und der Vollständigkeit halber aktualisiert.