Zum Inhalt springen

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.

Rest API

Für was steht REST?

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.

Wer ist der Client einer REST-API?

Oftmals sind native Apps (Android, iOS), ein Internetbrowser (Google Chrome, Safari, Microsoft Edge, etc.) oder Virtual Assistants wie Alexa oder Google Home Klienten einer REST-API. Natürlich können darüber hinaus Geräte wie ein smarter Heizkörper Clients sein.

Was meint RESTful?

Eine API ist dann RESTful, wenn sie die Normen der API REST Standards einhält.

Was ist REST API?

Was macht eine REST-API aus?

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.

Ein Beispiel für eine REST-API

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.

Eine API ist nicht einseitig

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.

Connecting teams

Beispiel, wie man die GET-Funktion in einer REST-API nutzt

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:

  • Telefonnummer: 097323024984
  • Vorname: Marc
  • Nachname: Müller
  • Firma: appleute

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.

Beispiel, wie man die POST-Funktion in einer REST-API nutzt

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.

Eine Illustration, die einen Computerbildschirm zeigt, der mit verschiedenen Geräten und Cloud-Diensten verbunden ist und die nahtlose Integration und Kommunikation symbolisiert, die durch die RESTful-API-Technologie ermöglicht wird

Wichtige architektonische Einschränkungen der REST-API

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.

1. Zustandslosigkeit

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.

2. Cache-Fähigkeit

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.

3. Einheitliche Schnittstelle

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:

  • Ressourcenidentifikation: Jede Ressource in einer REST-API wird durch eine URL (Uniform Resource Locator) eindeutig identifiziert.
  • Ressourcenmanipulation über Darstellungen: Clients interagieren mit Ressourcen über Darstellungen, in der Regel im JSON- oder XML-Format.
  • Selbstbeschreibende Nachrichten: Jede Nachricht in REST enthält genügend Informationen, um zu beschreiben, wie die Ressource verarbeitet werden soll. Beispielsweise teilen HTTP-Methoden wie GET, POST, PUT und DELETE dem Server mit, welche Aktion für eine Ressource ausgeführt werden soll.
  • Hypermedia as the Engine of Application State (HATEOAS): Der Server stellt Links zu anderen verwandten Ressourcen bereit und ermöglicht so eine dynamische Navigation und Interaktion zwischen den Ressourcen.

4. Mehrschichtiges System

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.

5. Code on Demand

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.

Detaillierte Beispiele für Anwendungen aus der Praxis

  • Twitter API: Die REST API von Twitter bietet Entwicklern Zugriff auf Tweet-Daten und ermöglicht das Abrufen, Posten und Interagieren mit Inhalten. So können Anwendungen beispielsweise Zeitleisten und Benutzerinformationen abrufen oder Beiträge programmgesteuert erstellen. Sie veranschaulicht REST in Aktion, indem sie HTTP-Standards einhält und JSON-Formate unterstützt.
  • Instagram-API: Die API von Instagram folgt ebenfalls den REST-Prinzipien und bietet Endpunkte für die Interaktion mit Fotos, Benutzern und Analysen. Dadurch können Apps Benutzerprofile und Medien-Uploads verwalten oder Interaktionsdaten abrufen. Die API von Instagram ist so konzipiert, dass sie eine riesige Benutzerbasis bewältigen kann und dabei effizient und zustandslos ist.

FAQ- Rest-API

1. Was ist der Zweck der REST-API?

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.

2. Welche APIs werden häufig von Entwicklern verwendet?

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.

3. Wie unterscheidet sich eine API von einer REST-API?

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.

4. Ist eine REST-API eine Art von Webdienst?

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.

REST-API Entwicklung: Experten beraten Sie

Bei Fragen zu oder Anwendungen (API zu PayPal, YouTube, ERP, etc.) von REST-APIs stehen Ihnen API-Entwicklungsagenturen wie appleute zur Seite.

de_DEDE