Anmelden Demo anfordern
View all

Wie eine REST-API funktioniert – mit Beispielen und Herausforderungen

Category: API-Dokumentation

Last updated on Jan 30, 2025

API ist die Abkürzung für Application Programming Interface und ist ein Code, der festlegt, wie verschiedene Softwarekomponenten im Programm interagieren und kommunizieren sollen. Viele wissen nicht, dass unter den meisten modernen Benutzeroberflächen Dutzende Anfragen an API-Server für Daten gesendet werden. Der Client verarbeitet dann Daten, die vom API-Server zurückgegeben werden, um ein Ergebnis in der Benutzeroberfläche zu erzeugen.

Zum Beispiel, wenn Sie jemals auf einer Aggregator-Webseite nach den besten Angeboten für Flüge oder Hotelbuchungen suchen, wird basierend auf Ihren Suchkriterien (nach einem Klick auf den Abgabe-Button) eine „Anfrage“ für Daten an eine auf Flüge oder Buchungen spezialisierte API geschickt. Nachdem die Aggregator-Webseite die Daten über die API abruft, werden Ihnen die Suchergebnisse angezeigt.

Die Aggregator-Webseite und die damit verbundenen Datenbanken speichern die in den Suchergebnissen enthaltenen Daten nicht. Stattdessen schickt die Webseite eine Datenanfrage, die Ihren Suchkriterien entspricht, an einen externen Webservice (z.B. API). Die API liefert die angeforderten Daten an die Webseite, und die Webseite analysiert die Daten und liefert die Suchergebnisse.

Was ist eine REST-API?

Es gibt viele Arten von APIs. Eine ausführliche Beschreibung von allen würde viele Blog-Beiträge erfordern. Um unsere Ziele voranzutreiben, beschränken wir die Diskussion von APIs nur auf REST-APIs.

REST steht für “representational state transfer” (repräsentative Zustandstransfer) und ist eine besondere Art von Architekturstil, wodurch die als „RESTful“ geltenden APIs eingeschränkt und „konform“ gestaltet werden.

REST-APIs sind eine sehr häufige und wichtige Art von API, die HTTP-Protokoll für die Datenübertragung verwendet. Da dieses HTTP-Protokoll verwendet wird, wird eine REST-API als „Webservice“ betrachtet, der sich mit der Interaktion zwischen Client-Anwendungen und API-Servern befasst. Bei der Benutzung dieses Protokolls sendet ein Client eine HTTP-Anfrage für Daten an einen API-Server und dann sendet der Server dem Client eine HTTP-Antwort mit verschlüsselten Daten.

Das HTTP-Protokoll, das von REST-APIs verwendet wird, erlaubt Plattformen und Systeme, die in verschiedenen Programmiersprachen geschrieben sind, miteinander zu interagieren. Zum Beispiel kann eine in C# geschriebene Client-Anwendung mit einem in Java geschriebenen API-Server interagieren. Diese Interoperabilität zwischen den Systemen macht Web-Dienste, insbesondere REST API, sehr beliebt in der modernen Softwareentwicklung.

REST API  Anwendungsfälle

Die von REST betriebene Trennung von Kunden- und Serverbelangen macht es attraktiv. für viele Arten von Projekten, sei es mobile Entwicklung, Web-Entwicklung etc.

Hier sind häufige Anwendungsfälle:

  • Cloud-Anwendungen – RESTs Vorteil der Zustandslosigkeit (später behandel) ist gut für Cloud-Anwendungen geeignet.
  • Cloud Computing – REST unterstützt Cloud Computing bei der Steuerung der Dekodierung von URLs während der Client-Server-Kommunikation.
  • Microservices – REST APIs verbinden Mikrodienste mit einer Anwendung.

Anatomie der REST-API-Anfrage

Die APIs legen die Regeln fest, wie Client-Anwendungen/Backends und API-Server im Programm kommunizieren können. Die API bestimmt, wie der Client Anfragen senden muss und welche Art von Informationen von der API an den Client zurückgegeben werden.

Die grundlegenden Komponenten der REST-API-Anfragen werden im Folgenden erläutert.

Ressourcen

Die verschiedenen Arten von Informationen, die der Client von der API abfragen kann, heißen „Ressourcen“. Stellen Sie sich eine Ressource als eine Art von Datenobjekt vor, das von der API zurückgegeben wird.

Zum Beispiel besteht die bekannte Swagger Petstore API aus mehreren Ressourcen, nämlich: Pet (Haustier), Store (Handlung) und User (Benutzer).

ressource in api

Alle drei Begriffe beziehen sich auf das zentrale Thema der Haustierhandlung, aber jeder einzelne Begriff repräsentiert die verschiedenen Datenobjekte, die Sie erstellen, bearbeiten oder löschen können.

Sie werden beim Lesen der API-Dokumentation bemerken, dass Endpunkte unter ihrer zugehörigen Ressource gruppiert sind. Zum Beispiel hat die „Pet-Resource“ hat mehrere verwandte Endpunkte (nachfolgend behandelt), um Maßnahmen für eine Haustier-Ressource zu ergreifen. Sie können Haustiere erstellen, aktualisieren oder löschen

Um das Konzept der Ressourcen zu festigen: Wenn Sie ein Tier erstellst, sollten Sie wissen, dass die API ein Haustier-Ressource oder ein Haustier „Objekt“ zurückgibt, das in gewisser Weise ein physisches Tier darstellt, das dem System der Haustierhandlung hinzugefügt wurde.

Endpunkte

Wenn Sie entweder die Haustier- oder Handlung- Ressource erweitern würden, würden Sie verschiedene Endpunkte sehen. Jeder Endpunkt macht etwas Anderes.

Endpunkte stehen im Mittelpunkt von API-Anfragen und zeichnen sich normalerweise in der API-Dokumentation ab. Vor allem die -Methode (oder Aktion, wie POST) der Anfrage und der Endpfad (z.B /pet) des Endpunktes werden hervorgehoben. Nachfolgend ist eine Liste der Endpunkte der Haustier-Ressource.

Endpunkte in api

Wenn Sie eine Anfrage an eine API senden, senden Sie eine HTTP-Anfrage mit dem spezifischen „Endpfad“ des Endpunkts. Der Endpfad kommt nach der Basis-URL von der API. Zum Beispiel ist der Basispfad des Swagger Petstore https://petstore.swagger.io/v2/, wohingegen ein Endpfad für einen Endpunkt einer Tierhandlung wie /pet aussieht. Die vollständige Ressourcen-URL, die zum Senden einer Anfrage verwendet wird, ist https://petstore.swagger.io/v2/pet.

Ein Endpunkt kann mehrere Pfade und Methoden haben (später behandelt), die unterschiedliche Antworten aus einer Ressource auslösen. Die folgende Anfrage sendet eine Anfrage mit dem /pet Endpunkt durch die POST-Methode. POST gibt an, dass Sie etwas erstellen wollen, in diesem Fall ein Haustier.

post-Methode

Die folgende Anfrage sendet eine Anfrage mit dem gleichen /pet Endpunkt – aber dieses Mal verwenden Sie die GET Methode, um die Details eines Tieres abzurufen, anstatt ein Tier zu erstellen. Beachten Sie, dass Sie die petId des Tieres an Ihre Anfrage anhängen müssen (später erläuterter Parameter).

erhalte Methode

Methoden

Wie kurz beschrieben, werden HTTP-Methoden mit API-Anfragen gesendet, um die Aktionen anzuzeigen, die Sie in Bezug auf eine Ressource durchführen möchten. Es gibt viele API-Methoden, daher werden hier nur einige wichtige aufgezählt:

  • POST Request – erzeugt eine Ressource.
  • GET request – ruft Informationen über eine Ressource ab.
  • PUT Request – aktualisiert oder erstellt eine Ressource.
  • DELETE Request – öscht eine Ressource.

HTTP-Methoden entsprechen CRUD-Operationen. Zum Beispiel entsprechen die HTTP-Methoden POST, GET, PUT und DELETE dem Erstellen, Lesen, Aktualisieren und Löschen von CRUD-Operationen.

Parameter

Stellen Sie sich Parameter als Optionen oder Filter vor, die mit einem Endpunkt übergeben wurden, die die Informationen in der Antwort beeinflusst. Es gibt verschiedene Arten von Parametern, wie:

  • Header-Parameter – sind im Anfrage-Header einer API-Anfrage enthalten und in der Regel mit der Autorisierung verwandt. Zum Beispiel wird in der Request-Header oft ein Access-Token Parameter aufgenommen, der Anfragen des Clients an die API autorisiert.
  • Pfadparameter – sind in die Ressourcen-URL einer API-Anfrage einbezogen und werden durch geschweifte Klammern am Ende vom Endpfad eines Endpunktes angezeigt. Zum Beispiel GET /pet/{petId}.
  • Abfrage-Zeichenkette-Parameter – wird in die Ressourcen-URL einer API-Anfrage eingeschlossen und erscheint nach einem Anführungszeichen (?).

Beachten Sie, dass Endpunkte alle diese Arten von Parametern verwenden können oder nicht. Allerdings sind Header-Parameter normalerweise für die Autorisierung von Anfragen enthalten.

Body anfordern

Request-Bodys sind im Wesentlichen JSON-Objekte, die im Körper einer API-Anfrage übergeben werden und häufig mit POST- oder PUT-Methoden verwendet werden. Auch wenn sie nicht als solche klassifiziert werden, sind sie wie Parameter, die die Form eines JSON-Objekts annehmen und nicht wie ein Schlüssel-Wert-Paar wie ein normaler Parameter.

Kernprinzipien von REST

Die Kernprinzipien von REST machen die REST in der Softwareentwicklung so attraktiv.

Client und Server

REST APIs haben eine Architektur, die den Client vom Server trennt, so dass beide unabhängig voneinander weiterentwickeln können. Der Client befasst sich nicht mit dem Datenspeicher des Servers und der Server ist nicht mit der Benutzerschnittstelle beschäftigt. Diese Trennung der Angelegenheiten macht Benutzerschnittstellen sehr tragbar und Serverelemente skalierbarer.

Zustandslosigkeit

Die Beschränkung der Zustandslosigkeit von REST stellt sicher, dass Zustandsdaten nur in der Client-Anwendung gespeichert werden und nicht auf dem Server. Jede Anfrage des Kunden ist unabhängig von vorherigen Anfragen und enthält alle erforderlichen Informationen. Da der Server keine Sitzungsdaten speichert, verwaltet die Client-Anwendung seine Sitzungsdaten.

Cachable

Wenn ein Client eine Anfrage an eine REST-API sendet, muss die API angeben, ob die Antwort entweder zwischengespeichert werden kann oder nicht. Außerdem muss angegeben werden, wie lange der Client Antworten zwischenspeichern kann. Caching kann die Verfügbarkeit und Leistung verbessern, indem die Anzahl der API-Anfragen reduziert wird, da der Client zwischengespeicherte Daten für eine bestimmte Zeit nutzen kann.

Einheitliche Schnittstelle

RESTful APIs sind auf eine bestimmte Weise eingeschränkt, die eine einheitliche Schnittstelle für Kunden schafft. Zum Beispiel, RESTful APIs müssen:

  • ihre Ressourcen identifizieren.
  • das HTTP-Protokoll verwenden, um ihre Operationen zu beschreiben (z.B. POST, GET, PUT, DEL).
  • selbstbeschreibende Nachrichten verwenden, die eine Interpretation durch den Kunden ohne anwendungsspezifisches Wissen ermöglichen.
  • Anfordern, dass Client-Anwendungen Hyperlinks verwenden, um Interaktionen mit den Ressourcen der API zu betreiben.

Filterndes System

REST erlaubt eine auf Ebenen basierende Systemarchitektur, bei der jede Ebene eine bestimmte Rolle im System spielt und nur mit anderen Ebenen (Layer(s)) interagiert. Zum Beispiel können Sie über einen API-Server, einen Datenspeicher-Server und einen Server zur Authentifizierung von Client-Anfragen mittels einer Ebenenarchitektur (Layered Architecture) verfügen.

Es kann auch Zwischenserver zwischen Client und Server geben, die sich mit Sicherheit, Loadbalancer und Proxies befassen, die die Verfügbarkeit des Systems verbessern können.

Vorteile von REST

Skalierbarkeit

Die Trennung des Clients von Serverkomponenten erhöht die Portabilität und Vereinfachung der Server-Komponenten. Die mehrschichtige Architektur von REST schränkt auch die Interaktion von Ebenen ein. Diese Faktoren tragen zur Skalierbarkeit von REST bei.

Portabilität / Unabhängigkeit

Da die Benutzeroberfläche vom Server getrennt ist, kann sie auf viele verschiedene Plattformen portiert oder übertragen werden. REST-APIs selbst sind auch über Plattformen hinweg anpassbar, was eine einfache Prüfung während der Entwicklung ermöglicht.

Flexibilität

Die Trennung von Client-Servern erleichtert auch die schnelle Migration von Daten zwischen Servern und die schnelle Einführung neuer Änderungen.

Verwendet weniger Bandbreite

RESTful APIs sind vorteilhaft gegenüber SOAP APIs in Bezug auf Bandbreite. REST APIs senden und empfangen üblicherweise JSON Payloads, im Gegensatz zu SOAP, die XML verwendet. XML Payloads sind größer als JSON, wodurch SOAP APIs mehr Bandbreite benötigen als REST APIs.

Einfache Integration

REST-APIs sind generell einfacher für Entwickler in ihre Anwendungen zu integrieren, da sie sich mehr auf die Benutzeroberfläche, Funktionalität, und Geschäftsregeln konzentrieren können statt auf die Serverkomponenten und Datenmanagement, die durch den API-Server behandelt werden.

REST-Herausforderungen

Während die Vorteile des Einsatzes von REST für viele die Nachteile überwiegen, sollten die Entwicklungsteams sich der potenziellen Probleme dieses architektonischen Stils bewusst sein.

Endpunkt Zuverlässigkeit

Obwohl es die beste Praxis ist, dass API-Endpunkt-URLs während der Entwicklung einer API konsistent sind, kann die Uniformität der URL für größere Systeme zu einem Problem werden, da die Anzahl der möglichen Endpfade und -methoden zunimmt.

API-Versionskontrolle

Wenn neue APIs veröffentlicht werden, wird die Versionskontrolle unweigerlich zu einem Problem, das Entwicklerteams zu bewältigen haben. Um die Kompatibilität zu schützen, benötigen ältere Endpunkte Unterstützung bis zur Auslaufphase. Das kostet Zeit und Ressourcen.

Erhöhte Reaktionszeiten

Ein Beispiel für zwei Faktoren, die Langsamkeit in der Reaktionszeit verursachen können, ist die Größe eines Servers und die Anzahl der Server, die an der Verarbeitung eines API-Aufrufs und des Abrufs von Daten beteiligt sind. Mit größeren Datenbanken kommen mehr Daten hinzu, die sortiert und verarbeitet werden müssen, insbesondere wenn es zahlreiche Datenbanken gibt.

Große Datenantworten

Manchmal ist es unvermeidlich, wenn die Antwort eines Servers auf eine API-Anfrage unnötig alle möglichen Daten bereitstellt, wenn nur eine Teilmenge benötigt wird. Die Client-Anwendung muss robust genug sein, um die von ihr benötigten Informationen zu analysieren und zu extrahieren. Eine GET-Anfrage ist ein häufiges Ereignis, das das Abrufen einer Vielzahl von Daten auslösen kann.

Sicherheit

Während die geschichtete Architektur von REST Sicherheitsvorteile hat, bedeutet das nicht, dass Anwendungen nicht verschlüsselt werden müssen. Ohne Verschlüsselung können Anwendungen sensible Daten enthüllen.

Top REST API Beispiele

Plaid

plaid-rest api Beispiel

Quelle

Der Marktplatz für SaaS (Software as a Service) Produkte löst in der FinTech Arena ein starkes Wachstum für REST APIs aus. Eines der führenden Unternehmen ist Plaid, das zu einer ausgewählten Anzahl von Unternehmen gehört, die die „Demokratisierung von Daten“ bei Finanzdienstleistungen fördern.

Bei der „Demokratisierung“ geht es darum, Daten für alle Beteiligten (Entwickler, Wirtschaftsbeteiligte, Konsumenten) unabhängig von ihrer technischen Kompetenz zur Verfügung zu stellen. Mit diesem Modell können Sie das Potenzial von Daten nutzen, um Erfahrungen zu erzeugen, die den Bedürfnissen des Endverbrauchers entsprechen.

Plaid verfolgt einen äußerst „Anwendungsfall“-fokussierten Ansatz, wenn es um die Vermarktung des Potenzials seiner Dienstleistungen geht. Plaids klare Kommunikation und Anleitung zur Nutzung seiner Dienstleistungen ist ein Unterscheidungsmerkmal.

Zum Beispiel gibt es eine ganze Reihe von Anwendungsfällen, um die Dienste von Plaid zu nutzen. ob es sich um Anwendungen im Bereich der persönlichen Finanzierung, der Verbraucherzahlungen, der Kreditvergabe, des Bankwesens oder der Vermögensverwaltung handelt. Jeder Anwendungsfall wird in seiner Dokumentation ausführlich erläutert. Plaid hat auch Verbindungen zu Tausenden von Finanzinstitutionen, die Entwickler in ihren Apps nutzen können.

Twitter

Twitter rest api Beispiele

Quelle

Was Social Media angeht, ist Twitters Reichweite enorm, mit durchschnittlich 206 Millionen aktiven Nutzern. Entwickler sollten sich der Vorteile der Twitter-API bewusst sein, um die Twitter-Funktionalitäten zu integrieren und gleichzeitig ihre Anwendungen über die Plattform zu fördern.

Zum Beispiel können Entwickler Twitters Identifikationsprozess nutzen, um den Registrierungsprozess zu reduzieren oder zu beseitigen. Mit der API können Sie Tweets Ihren Benutzern anhand bestimmter Kriterien wie Standort oder angesagte Hashtags anzeigen. Mit Twitters Reichweite können Sie Ihre Anwendung auch effektiv unter Verwendung ihrer Daten vermarkten.

Während andere APIs von bemerkenswerten Social-Media-Unternehmen zur Verfügung stehen, zeichnet sich die Twitter-API durch ihre Fähigkeiten und Reichweite besonders aus.

AWS KI-Dienste

Amazon AWS rest api Beispiele

Quelle

REST-APIs für künstliche Intelligenz, Datenwissenschaft und maschinelle Lernanwendungen wachsen stetig. Zu den führenden Firmen, die diese Dienstleistungen anbieten, gehören AWS AI Services (z. Amazon ermöglicht Entwicklern die Integration von KI-Funktionen in ihre Anwendungen, um eine anpassungsfähigere und intelligentere Interaktion zu ermöglichen. KI kann auch helfen, den Datenaustausch zwischen Systemen zu sichern, indem potentielle Sicherheitslücken erkannt werden.

Während es viele KI-APIs gibt, bieten Amazons Dienstleistungen das breiteste Spektrum an Funktionalitäten ihrer Art und haben den zusätzlichen Vorteil einer einfachen Integration auf ihrer Seite.

Zusammenfassung

APIs sind sowie Klebstoff geworden, der getrennte Systeme miteinander verbindet, damit sie Daten mit einem gemeinsamen Architekturmodell austauschen können (insbesondere REST), das die Skalierbarkeit, Flexibilität und Unabhängigkeit erhöht, während Client und Server sich unabhängig voneinander entwickeln.

Sowohl neue Startups als auch etablierte Technologieunternehmen erweitern ihr bestehendes Angebot und führen neue SaaS-Produkte aus, da die „Demokratisierung von Daten“ für Unternehmen, die auf dem Vorsprung bleiben wollen, wichtig wird.

Das Gespräch über den Wert von APIs ist nicht mehr ausschließlich im Bereich der „Coders“. Stakeholder aus allen Geschäftsbereichen profitieren vom Verständnis von APIs und die Erkennung, wie sie bei der Lösung von unternehmerischen Herausforderungen eingesetzt werden können.

Planen Sie eine Demo mit einem unserer Experten, um einen tieferen Sprung in Document360 zu machen

Demo buchen
Dokument360

Related Articles