REST-API Schnittstellen und Programmierschnittstellen
Was ist eine REST-API?
Eine REST-API ist die konventionellste Art von Application Programming Interface im World Wide Web. Wir erklären Anwendungsgebiete und Use-Cases.
Eine REST-API ist die konventionellste Art von Application Programming Interface im World Wide Web. Wir erklären Anwendungsgebiete und Use-Cases.
RE steht für REpresentational, das S für State und das T für Transfer. Daraus ergibt sich Representational State Transfer. REST ist eine Art Softwarearchitektur, mit der jede Schnittstelle zwischen verschiedenen Systemen beschrieben wird, die HTTP für ihre Kommunikation verwendet. Das REST-Paradigma besagt, dass beim Datentransfer zwischen zwei Klienten keine Information vom Datentransfer-Service selbst einbehalten wird – der Datenverkehr ist einmalig und in sich abgeschlossen.
Ein Beispiel: Sie loggen sich bei PayPal mit Ihren Login-Daten ein und werden vom Dienst authentifiziert. Bei Ihrer nächsten Sitzung müssen Sie sich wieder einloggen, weil keine Authentifizierung im vorherigen Login-Vorgang gespeichert wurde. Mehr zu Payment Providern wie PayPal.
Eine API ist dann RESTful, wenn sie die Normen der API REST Standards einhält.
Hauptkennzeichen ist erstens die lose Client-Server-Kopplung: Client und Server brauchen keinen Austausch, der über den der Daten hinausgeht. Heißt konkret: Den Server “interessiert” es nicht, was der Client mit den Daten anfängt. Den Client wiederum “interessiert” es wenig, wie die Server-Implementierung aussieht.
Zweitens ist eine REST-API sozusagen zustandslos, weil jeder API Call (oder API Aufruf), der beim Server eingeht, unabhängig ist. Für den Zugriff, das Erstellen, der Aktualisierung und dem Löschen von Ressourcen werden – unter Beibehaltung der Aufzählungsreihenfolge – die folgenden HTTP-Verben genutzt: GET, POST, PUT, DELETE. Wenn Sie Informationen auf einer Webseite anfordern, ist das ein GET. Ein POST passiert bspw. dann, wenn Sie Ihre Kontaktdaten im World Wide Web hinterlassen.
Drittens können API Calls gecached werden, sodass dieselbe Ressource nicht einen Mehrfach-Request erfährt.
Viertens ist eine REST-API einheitlich: Jede Ressource muss einen eindeutigen Uniform Resource Identifier haben.
Eine REST-API kann die gleichen Methoden zur Abfrage eines Drittanbieter-Servers nutzen, mit denen auch die Anzeige von Seiteninformationen oder Seitenformularen der gleichen Webseite erfolgt. Aus diesem Grund kann der Drittanbieter-Server über eine vom API-Editor bereitgestellte URL abgefragt werden.
Eine REST-API ist eine Möglichkeit für zwei Computersysteme, über das Internet miteinander zu kommunizieren. Es handelt sich um eine Reihe von Regeln zur Erstellung von Webdiensten, die es verschiedenen Systemen ermöglichen, miteinander zu kommunizieren. Hier ist ein einfaches Beispiel für eine REST-API, mit der ein Client eine Liste von Benutzern von einem Server abrufen kann:
GET /Benutzer HTTP/1.1
Host: www.example.com
Der obige API-Aufruf wird mit der GET-Methode durchgeführt. Er wird verwendet, um Daten vom Server abzurufen. Der Pfad „/users“ zeigt an, dass der Client eine Liste von Benutzern abrufen möchte. Der Server antwortet dann mit einer Liste von Benutzern in einem Format wie JSON oder XML.
Es gibt viele andere Methoden und Funktionen, die in einer REST-API verwendet werden können, wie POST (zum Senden von Daten an den Server), DELETE (zum Löschen von Daten vom Server) und Authentifizierung.
Wo eine Anfrage in der Form eines API Calls, dort auch eine Antwort. Die Antwort erfolgt in einer der beiden spezifischen Rückgabeformate JSON oder XML. Unter Umständen kann die API-Entwicklung so vorgenommen worden sein, dass der User das Rückgabeformat der REST-API wählen kann.
Eine gut aufgebaute (RESTful) Schnittstelle ist in der Regel einfach lesbar und die entsprechende API-Dokumentation klar formuliert, so wie das bspw. bei der Youtube Data API der Fall ist.
Stellen Sie sich vor, eine dritte Person führt ein Adressbuch mit all Ihren Kontakten für Sie. Diesem Adressbuch können Sie 1. via API-Calls (also GET-Abfragen) Informationen entnehmen und 2. via API-Calls (POST) Informationen hinzufügen. Nun wollen Sie wissen, wem die Nummer zugehörig ist, die gerade auf Ihrem Handy angerufen hat (z.B. 09732 30 24 984, die Nummer von appleute).
Hierzu vollführen Sie eine GET-Abfrage an die in der API-Dokumentation hinterlegten Adresse Ihres Adressbuchs, beispielsweise api.meinadressbuch.com/kontakte/telefonnummern/097323024984.
Es wird offensichtlich, dass Sie also auf Basis eines Kriteriums, der Telefonnummer, nach dem gesamten zugehörigen Adresseintrag suchen. Die REST API wird Ihnen darauf im entsprechenden Rückgabeformat folgende Antwort liefern:
Das Ergebnis ist aufgrund der Einmaligkeit der Telefonnummer eindeutig. Würden Sie hingegen nach “Müller” suchen, hätten Sie ggf. mehrere Einträge, weil “Müller” in Ihrem Adressbuch evtl. häufiger vorkommt. So viel also zu GET-Anfragen zum Extrahieren bzw. Einfordern von Informationen über die s.g. REST-API.
Der Mechanismus für die POST-Aktion ist ähnlich dem der GET-Abfrage. Stellen Sie sich vor, Sie wollen Information nicht einfordern, sonder weitergeben. Bei einem GET-Request wollen Sie also etwas “posten”. Im übertragenen Sinne erfolgt das Posten über eine Art Kontaktformular bzw. Kontaktschablone, wobei die einzelnen Komponenten der geteilten Information über festgelegte Kontaktformular-Parameter an die Schnittstelle kommuniziert werden. So können Informationen an einen Drittanbieter weitergegeben und deren Empfang bzw. Status nach Erhalt gar bestätigt werden.
Um die Leistungsfähigkeit und Flexibilität von REST-APIs vollständig zu verstehen, ist es wichtig, sich mit den Kernprinzipien zu befassen, die die Architektur definieren. REST (Representational State Transfer) legt mehrere wichtige Einschränkungen fest, die Skalierbarkeit, Leistung und Einfachheit beim Aufbau von Webdiensten gewährleisten.
Eines der bestimmenden Merkmale von REST ist die Zustandslosigkeit. In einer RESTful-API muss jede Client-Anfrage an den Server alle Informationen enthalten, die zum Verständnis und zur Vervollständigung der Anfrage erforderlich sind. Der Server speichert keine Informationen über frühere Anfragen, sodass jede Anfrage unabhängig und von anderen isoliert ist. Dadurch wird sichergestellt, dass der Server ein hohes Anfragevolumen effizient verarbeiten kann, da zwischen den Interaktionen keine Sitzungsinformationen gepflegt werden müssen.
Beispiel: Wenn ein Client Informationen zu einem Produkt von einer E-Commerce-API anfordert, stellt der Server die Daten als Antwort bereit, ohne sich an die vorherigen Interaktionen mit diesem Client zu erinnern.
RESTful-APIs ermöglichen es, Antworten explizit als cachefähig oder nicht cachefähig zu kennzeichnen. Dies trägt zur Leistungssteigerung bei, da Clients zuvor abgerufene Daten wiederverwenden können, anstatt wiederholt den Server aufzurufen. Durch das Caching wird die Serverlast reduziert und die Antwortzeiten für den Client beschleunigt.
Statische Ressourcen wie Bilder oder Produktdetails, die sich selten ändern, können beispielsweise zwischengespeichert werden, während benutzerspezifische Daten möglicherweise nicht zwischengespeichert werden können, um sicherzustellen, dass die Informationen aktuell sind.
REST-APIs sind um eine einheitliche Schnittstelle herum konzipiert, d. h. alle Ressourcen und Aktionen sind standardisiert. Diese Einschränkung vereinfacht und entkoppelt die Architektur und ermöglicht ein flexibleres und skalierbares System. Zu den wichtigsten Grundsätzen einer einheitlichen Schnittstelle gehören:
Die REST-Architektur kann aus mehreren Schichten (z. B. Sicherheit, Lastverteilung und Zwischenspeicherung) bestehen, wobei jede Schicht einem bestimmten Zweck dient. Dieser modulare Ansatz verbessert die Skalierbarkeit und Sicherheit des Systems. Wichtig ist, dass der Client diese Schichten nicht kennt und nur mit dem Server interagiert, als wäre er eine einzige Einheit.
Beispielsweise kann eine Anfrage des Clients eine Authentifizierungsschicht, eine Caching-Schicht und eine Lastausgleichsschicht durchlaufen, bevor sie den endgültigen Server erreicht, der die Anfrage verarbeitet.
REST-APIs sind zwar nicht zwingend erforderlich, können es Servern jedoch ermöglichen, die Funktionalität des Clients vorübergehend zu erweitern oder anzupassen, indem ausführbarer Code (z. B. JavaScript) an den Client gesendet wird. Diese Funktion, die als Code on Demand bezeichnet wird, ermöglicht dynamische Interaktionen zwischen Client und Server.
Wenn der Server feststellt, dass der Client eine Funktion ausführen muss, die er nicht nativ verarbeiten kann, sendet der Server Code (in der Regel in Form von Skripten, z. B. JavaScript) an den Client. Der Client führt diesen Code dann aus, um seine Funktionalität vorübergehend zu erweitern. Dies kann die Validierung von Eingaben, die Verarbeitung bestimmter Formulare oder die Manipulation von Daten auf eine Weise umfassen, für die der Client ursprünglich nicht ausgelegt war.
Wenn beispielsweise ein Formular auf einer Webseite ausgefüllt wird, kann der Server ein Skript senden, um die Gültigkeit der eingegebenen Daten zu überprüfen (z. B. um sicherzustellen, dass eine Telefonnummer oder E-Mail-Adresse das richtige Format hat). Dieser Code wird auf der Client-Seite ausgeführt, ohne dass eine ständige Kommunikation mit dem Server erforderlich ist, wodurch die Effizienz und Reaktionsfähigkeit verbessert wird.
REST-APIs werden für eine Vielzahl von Zwecken verwendet. Einige häufige Anwendungsfälle für REST-APIs sind:
Zum Abrufen von Daten: Sie können eine REST-API verwenden, um Daten von einem Webserver abzurufen und sie in Ihrer Anwendung anzuzeigen.
Aktualisieren von Daten auf einem Webserver: Mit einer REST-API können Sie Daten auf einem Webserver aktualisieren, indem Sie eine PUT-Anfrage an die API senden.
Erstellen neuer Daten: Um neue Daten auf einem Webserver zu erstellen, indem eine POST-Anfrage an die API gesendet wird.
Zum Löschen von Daten: Sie können eine REST-API verwenden, um Daten von einem Webserver zu löschen, indem Sie eine DELETE-Anfrage an die API senden.
Integrationen von Drittanbietern: Viele Unternehmen bieten APIs an, die es Entwicklern ermöglichen, ihre Produkte in andere Anwendungen zu integrieren.
Microservices: REST-APIs sind ein wesentlicher Bestandteil der Microservices-Architektur. Sie werden häufig verwendet, um kleine, unabhängige Dienste zu erstellen, die zu größeren Anwendungen kombiniert werden können.
Einige der APIs, die von Entwicklern verwendet werden:
Google Maps API: Die Google Maps API ermöglicht es Entwicklern, auf Kartendaten zuzugreifen und diese in ihre eigenen Anwendungen einzubinden.
PayPal-API: Die PayPal-API ermöglicht es Entwicklern, Zahlungen zu verarbeiten und finanzielle Transaktionen zu verwalten.
Stripe-API: Die Stripe-API ermöglicht es Entwicklern, Zahlungen zu verarbeiten, Abonnements zu verwalten und andere Finanztransaktionen durchzuführen.
GitHub-API: Mit der GitHub-API können Entwickler auf Daten der beliebten Code-Repository-Plattform zugreifen und Vorgänge wie die Suche nach Repositories, die Verwaltung von Issues und die Erstellung von Pull Requests durchführen.
API steht für „Anwendungs programmier schnittstelle“. Eine API ist ein Regelwerk, das festlegt, wie zwei Softwareprogramme miteinander kommunizieren sollen. Sie definiert die Arten von Anfragen, die gestellt werden können, die Art und Weise der Datenübertragung und das Format der Daten.
Eine REST-API ist die Abkürzung für Representational State Transfer API. Es handelt sich um eine spezielle Art von API, die dem architektonischen Stil von REST entspricht. Diese APIs verwenden eine einheitliche Schnittstelle für die Kommunikation, die es verschiedenen Systemen erleichtert, miteinander zu kommunizieren.
Eine REST-API ist eine Art von Webdienst, der den Architekturstil von REST verwendet. REST-APIs basieren auf HTTP und verwenden HTTP-Methoden (wie GET, POST, PUT, DELETE), um Operationen mit Ressourcen durchzuführen.
Sie können Daten in verschiedenen Formaten zurückgeben, z. B. XML, JSON oder HTML. REST-APIs werden in der Regel verwendet, um die Funktionalität einer Webanwendung oder eines Dienstes offenzulegen, und sind so konzipiert, dass sie über das Internet leicht zugänglich sind.
Bei Fragen zu oder Anwendungen (API zu PayPal, YouTube, ERP, etc.) von REST-APIs stehen Ihnen API-Entwicklungsagenturen wie appleute zur Seite.
AppLeute GmbH ist ein KI-Transformationsunternehmen für B2B-Dienstleistungs-KMU im DACH-Raum, deren Betriebsabläufe ihre bestehenden Tools überholt haben. Wir unterstützen Sie dabei, komplexe Abläufe mit passender Software und KI zuverlässig abzubilden