Was ist eine RESTful-API?

Eine RESTful-API ist eine Schnittstelle mit der zwei Computersysteme Informationen auf sichere Weise über das Internet austauschen können. Die meisten Geschäftsanwendungen müssen mit anderen internen und externen Anwendungen kommunizieren, um verschiedene Aufgaben zu erfüllen. Um beispielsweise monatliche Gehaltsabrechnungen zu erstellen, muss Ihr internes Buchhaltungssystem Daten mit dem Banksystem Ihres Kunden austauschen, um die Rechnungsstellung zu automatisieren und mit einer internen Zeiterfassungsanwendung zu kommunizieren. RESTful-APIs unterstützen diesen Informationsaustausch, da sie sicheren, zuverlässigen und effizienten Software-Kommunikationsstandards folgen.

Was ist eine API?

Eine Programmierschnittstelle (API) definiert die Regeln, die Sie zur Kommunikation mit anderen Software-Systemen befolgen müssen. Entwickler schalten APIs frei oder erstellen sie, damit andere Anwendungen mit ihren Anwendungen programmatisch kommunizieren können. Beispielsweise schaltet die Zeiterfassungsanwendung eine API frei, die den vollständigen Namen eines Mitarbeiters und einen Zeitraum abfragt. Wenn die Informationen eingehen, wird der Stundenzettel des Mitarbeiters intern verarbeitet und es wird die in diesem Zeitraum geleistet Anzahl der Arbeitsstunden angezeigt.

Sie können sich die Web-API als Gateway zwischen Clients und Ressourcen auf dem Web vorstellen.

Clients

Clients sind Benutzer, die auf Informationen vom Web zugreifen möchten. Der Client kann eine Person oder ein Software-System sein, die/das die API verwendet. Beispielsweise können Entwickler Programme schreiben, die auf Wetterdaten von einem Wettersystem zugreifen können. Oder Sie können auf dieselben Daten von Ihrem Browser zugreifen, wenn Sie die Wetter-Website direkt aufrufen.

Ressourcen

Die Ressourcen sind die Informationen, die verschiedene Anwendungen ihren Clients zur Verfügung stellen. Bei den Ressourcen kann es sich um Bilder, Videos, Text, Nummern oder eine andere Art Daten handeln. Die Maschine, die dem Client die Ressource zur Verfügung stellt, wird auch als Server bezeichnet. Organisationen verwenden APIs, um Ressourcen freizugeben und um Webservices zur Verfügung zu stellen und gleichzeitig Sicherheit, Kontrolle und Authentifizierung aufrecht zu erhalten. Außerdem helfen APIs ihnen dabei, welcher Client auf bestimmte interne Ressourcen zugreifen darf.

Erstellung von APIs mit Amazon API Gateway

Was ist REST

Representational State Transfer (REST) ist eine Software-Architektur, die Bedingungen zur Funktionsweise einer API festlegt. REST wurde ursprünglich als Leitfaden zur Verwaltung der Kommunikation auf einem komplexen Netzwerk wie dem Internet erstellt. Sie können REST-basierte Architektur verwenden, um leistungsstarke zuverlässige Kommunikation nach Maß zu unterstützen. Die Architektur ist leicht implementierbar und leicht modifizierbar. Dadurch wird jedem API-System Sichtbarkeit und plattformübergreifende Portierbarkeit verliehen.

API-Entwickler können APIs mit mehreren verschiedenen Architekturen entwerfen. APIs, die dem REST-Architekturstil folgen, werden als REST-APIs bezeichnet. Webservices, die diese REST-Architektur implementieren, werden als RESTful-Webservices bezeichnet. Der Begriff RESTful-API bezieht sich im Allgemeinen auf die RESTful-Web-APIs. Jedoch können die Begriffe REST-API und RESTful-API auch als Synonyme verwendet werden.

Im Folgenden werden einige Grundsätze des REST-Architekturstils aufgeführt:

Einheitliche Schnittstelle

Die einheitliche Schnittstelle ist für den Design eines RESTful-Webservices von grundlegender Bedeutung Sie gibt an, dass der Server Informationen in einem Standardformat überträgt. Die formatierte Ressource wird als Repräsentation in REST bezeichnet. Dieses Format kann sich von der internen Repräsentation der Ressource auf der Serveranwendung unterscheiden. Zum Beispiel kann der Server Daten als Text speichern, sie jedoch in einem HTML-Repräsentationsformat senden.

Die einheitliche Schnittstelle legt vier architektonische Einschränkungen fest:

  1. Anforderungen sollten Ressourcen identifizieren. Sie tun das durch Nutzung eines einheitlichen Ressourcen-Identifikators:
  2. Clients verfügen über ausreichende Informationen in der Ressourcen-Repräsentation, um die Ressource zu modifizieren oder zu löschen, wenn sie es wünschen. Der Server erfüllt diese Bedingung, indem er Metadaten sendet, die die Ressource genauer beschreiben.
  3. Clients erhalten Informationen über die weitere Verarbeitung der Repräsentation. Der Server erreicht dies, indem er selbstbeschreibende Nachrichten sendet, die Metadaten darüber enthalten, wie der Client sie am besten verwenden kann.
  4. Clients erhalten Informationen über alle anderen zusammenhängenden Ressourcen, die sie zur Erfüllung einer Aufgabe benötigen. Der Server erreicht dies, indem er Hyperlinks in der Repräsentation sendet, damit Kunden auf dynamische Weise mehr Ressourcen entdecken können.

Zustandslosigkeit

In der REST-Architektur bezieht sich die Zustandlosigkeit auf eine Kommunikationsmethode, in der der Server jede Client-Anforderung einzeln von allen vorherigen Anforderungen abschließt. Clients können Ressourcen in einer beliebigen Reihenfolge anfordern und jede Anforderung ist zustandslos oder von anderen Anforderungen isoliert. Diese Einschränkung des REST-API-Designs deutet an, dass der Server die Anforderung jedes Mal vollständig verstehen und bearbeiten kann. 

Schichtenmodell

In der mehrschichtigen Architektur kann der Client eine Verbindung mit anderen autorisierten Vermittlern zwischen dem Client und dem Server herstellen und immer noch Antworten vom Server erhalten. Die Server können auch Anforderungen an andere Server weiterleiten. Sie können Ihren RESTful-Webservice so entwerfen, dass er auf mehreren Servern mit mehreren Schichten wie Sicherheit, Anwendung und Geschäftslogik ausgeführt werden kann, die zusammenarbeiten, um Client-Anforderungen zu erfüllen. Diese Schichten bleiben für den Client unsichtbar.

Cachefähigkeit

RESTful-Webservices unterstützen das Caching. Das ist der Prozess des Zwischenspeicherns einiger Antworten auf dem Client oder auf einem Vermittler, um die Reaktionszeit des Servers zu verbessern. Nehmen Sie zum Beispiel an, dass Sie eine Website besuchen, die gemeinsame Bilder in der Kopf- und Fußzeile auf jeder Seite hat. Jedes Mal, wenn Sie eine neue Website besuchen, muss der Server die gleichen Bilder erneut senden. Um das zu vermeiden, werden diese Bilder nach der ersten Antwort vom Client zischengespeichert und der Client verwendet dann die Bilder direkt aus dem Cache. RESTful-Webservices kontrollieren das Caching mithilfe von API-Reaktionen , die sich selbst als cachebar und nicht cachebar definieren.

Code On-Demand

Im REST-Architekturstil können Server vorübergehend die Client-Funktionalität erweitern oder anpassen, indem Software-Programmiercode an den Client übertragen wird. Wenn Sie zum Beispiel ein Anmeldeformular auf einer Website ausfüllen, hebt Ihr Browser unverzüglich alle Fehler hervor, die Sie machen, wie beispielsweise eine falsche Telefonnummer. Der Browser kann das aufgrund des vom Server gesendeten Codes tun.

Welche Vorteile bieten RESTful-APIs?

RESTful-APIs bieten die folgenden Vorteile:

Skalierbarkeit

Systeme, die REST-APIs implementieren, können effizient skalieren, weil REST die Interaktionen zwischen Client und Server optimiert. Die Zustandslosigkeit entfernt die Serverlast, weil der Server die Informationen über vorherige Client-Anforderungen nicht speichern muss. Gut verwaltetes Caching beseitigt einige Client-Server-Interaktionen zum Teil oder komplett. All diese Funktionen unterstützen die Skalierbarkeit ohne Kommunikationsengpässe zu verursachen, die die Leistung beeinträchtigen.

Flexibilität

RESTful-Webservices unterstützen die totale Trennung zwischen Client und Server. Sie vereinfachen und entkoppeln verschiedene Serverkomponenten, sodass jedes Teil sich eigenständig entwickeln kann. Plattform- oder Technologie-Änderungen bei der Server-Anwendung wirken sich nicht auf die Client-Anwendung aus. Durch die Fähigkeit, Anwendungs-Funktionen in Schichten aufzuteilen, wird die Flexibilität sogar noch erhöht. Zum Beispiel können Entwickler Änderungen an der Datenbank-Schicht vornehmen, ohne die Anwendungslogik neu schreiben zu müssen.

Unabhängigkeit

REST-APIs sind von der eingesetzten Technologie unabhängig. Es ist möglich, sowohl Client- als auch Serveranwendungen in verschiedenen Programmiersprachen zu schreiben, ohne das API-Design zu beeinträchtigen. Es ist auch möglich, die zugrunde liegende Technologie auf beiden Seiten zu ändern, ohne die Kommunikation zu beeinträchtigen.

Wie funktionieren RESTful-APIs?

Die Basisfunktion einer RESTful-API ist die gleiche wie das Browsen im Internet. Der Client nimmt mithilfe der API Kontakt zum Server auf, wenn eine Ressource erforderlich ist. in der API-Dokumentation zu Serveranwendungen erklären API-Entwickler, wie der Client die REST-API verwenden sollte. Im Folgenden die allgemeinen Schritte für die Durchführung eines REST-API-Aufrufs:

  1. Der Client sendet eine Anforderung an den Server. Der Client folgt der API-Dokumentation, um die Anforderung so zu formatieren, dass der Server sie versteht.
  2. Der Server authentifiziert den Client und bestätigt, dass der Client berechtigt ist, diese Anforderung zu stellen.
  3. Der Server empfängt die Anforderung und verarbeitet sie intern.
  4. Der Server sendet eine Antwort an den Client zurück. Die Antwort enthält Informationen, die dem Client mitteilen, ob die Anforderung erfolgreich war. Die Antwort enthält auch Informationen, die der Client angefordert hat.

Die Details der REST-API-Anforderung und -Antwort unterscheiden sich leicht je nachdem, wie die API-Entwickler die API entworfen haben.

Was enthält die RESTful-API-Client-Anforderung?

RESTful-APIs erfordern, dass Anforderungen die folgenden Hauptkomponenten enthalten:

Unique Resource Identifier

Der Server identifiziert jede Ressource mit Unique Resource Identifiers (eindeutigen Ressourcenkennungen). Für REST-Services führt der Server normalerweise die Ressourcen-Identifizierung mit dem Uniform Resource Locator (URL) durch. Der URL gibt den Pfad zur Ressource an. Ein URL ähnelt der Website-Adresse, die Sie in Ihrem Browser eingegeben haben, um eine Website zu besuchen. Der URL wird als Endpunkt der Anforderung bezeichnet und gibt für den Server an, was der Client anfordert.

Methode

Entwickler implementieren oft RESTful-APIs mithilfe des Hypertext Transfer Protocol (HTTP). Eine HTTP-Methode teilt dem Server mit, was er mit der Ressource machen soll. Im Folgenden werden vier übliche HTTP-Methoden aufgeführt:

GET

Clients verwenden GET zum Zugriff auf Ressourcen, die sich in der angegebenen URL auf dem Server befinden. Sie können GET-Anforderungen zwischenspeichern und Parameter in der RESTful-API-Anforderung senden, um den Server anzuweisen, Daten vor dem Senden zu filtern.

POST

Clients verwenden POST zum Senden von Daten an den Server. Dazu gehört die Daten-Repräsentation mit der Anforderung. Das mehrmalige Senden der gleichen POST-Anforderung führt dazu, dass die gleiche Ressource mehrere Male erstellt wird.

PUT

Clients verwenden PUT zum Aktualisieren von bestehenden Ressourcen auf dem Server. Im Gegensatz zu POST führt das mehrmalige Senden der gleichen PUT-Anforderung in einem RESTful-Service zum gleichen Ergebnis.

DELETE

Die Clients verwenden die DELETE-Anforderung zum entfernen der Ressource. Eine DELETE-Anforderung kann den Server-Status ändern. Wenn jedoch der Benutzer über keine angemessene Authentifizierung verfügt, schlägt die Anforderung fehl.

HTTP-Kopfzeilen

Die Kopfzeilen der Anforderung sind die Metadaten, die zwischen dem Client und dem Server ausgetauscht werden. Zum Beispiel gibt die Kopfzeile der Anforderung das Format der Anforderung und die Antwort an, stellt Informationen über den Anforderungsstatus zur Verfügung, usw.

Daten

REST-API-Anforderungen umfassen u. a. Daten für die POST-, PUT- und andere HTTP-Methoden, um eine erfolgreiche Funktion zu gewährleisten.

Parameter

RESTful-API-Anforderungen können Parameter umfassen, die dem Server weitere Details darüber geben, was zu tun ist. Im Folgenden werden einige verschiedene Arten von Parametern aufgeführt:

  • Pfad-Parameter, die URL-Details angeben.
  • Abfrage-Parameter, die weitere Informationen über die Ressource anforern.
  • Cookie-Parameter, die Clients schnell authentifizieren.

Was ist in der Antwort des RESTful-API-Servers enthalten?

REST-Grundsätze erfordern, dass die Antwort die folgenden Hauptkomponente enthält:

Statuszeile

Die Statuszeile enthält einen aus drei Ziffern bestehenden Statuscode, der den Erfolg oder den Fehlschlag der Kommunikation mitteilt. Zum Beispiel gibt der Code 2XX Erfolg an, aber 4XX- und 5XX-Codes geben Fehler an. 3XX-Codes geben eine Umleitung der URL an.

Im Folgenden werden einigen häufig vorkommende Statuscodes angezeigt:

  • 200: Allgemeine Erfolgs-Antwort
  • 201POST-Methode Erfolgs-Antwort
  • 400: Falsche Anforderung, die der Server nicht verarbeiten kann
  • 404: Ressource nicht gefunden

Text der Nachricht

Der Text der Antwort enthält die Repräsentation der Ressource. Der Server wählt ein angemessenes Repräsentationformat auf Grundlage von dem aus, was die Anfrage-Kopfzeilen enthalten. Clients können Informationen im XML- oder JSON-Format anfordern, die definieren, wie die Daten in Klartext geschrieben werden. Zum Beispiel: Wenn der Client den Namen und das Alter einer Person namens John anfordert, gibt der Server eine JSON-Repräsentation wie folgt an:

'{"name":"John", "age":30}'

Kopfzeilen

Die Antwort enthält auch Kopfzeilen oder Metadaten zur Antwort. Sie stellen mehr Kontext über die Antwort zur Verfügung und umfassen Informationen wie Server, Verschlüsselung und Art des Inhalts.

Was sind die Methoden zur RESTful-API-Authentifizierung?

Ein RESTful-Webservice muss Anforderungen authentifizieren, bevor er eine Reaktion senden kann. Die Authentifizierung ist der Prozess der Verifizierung einer Identität. Beispielsweise können Sie Ihre Identität beweisen, indem Sie Ihren Personalausweis der Führerschein vorlegen. Ebenso müssen RESTful-Service-Clients Ihre Identität dem Server beweisen, um Vertrauen aufzubauen.

Die RESTful-API verfügt über vier übliche Authentifizierungs-Methoden:

HTTP-Authentifizierung

HTTP definert einige Authentifizierungs-Schemen, die Sie direkt verwenden können, wenn Sie die REST-API implementieren. Im Folgenden werden zwei dieser Schemen aufgeführt:

Grundlegende Authentifizierung

Bei der grundlegenden Authentifizierung sendet der Client den Benutzernamen und das Passwort in der Kopfzeile der Anforderung. Anschließend werden diese Daten mit base64 verschlüsselt, einer Verschlüsselungs-Technik, die das Paar zur sicheren Übertragung in eine Reihe von 64 Zeichen konvertiert.

Bearer-Authentifizierung

Der Begriff Bearer-Authentifizierung bezieht sich auf den Prozess der Gewährleistung der Zugriffskontrolle für den Token-Bearer (Token-Inhaber). Das Bearer-Token ist üblicherweise eine verschlüsselte Zeichenfolge, die der Server als Antwort auf einer Anmeldeanforderung generiert. Der Client sendet das Token in den Kopfzeilen der Anforderung, um auf Ressourcen zugreifen zu können.

API-Schlüssel

API-Schlüssel sind eine weitere Option für die REST-API-Authentifizierung. In diesem Ansatz weist der Server einen eindeutigen generierten Wert für einen neuen Client zu. Jedes Mal, wenn der Client versucht, auf Ressourcen zuzugreifen, verwendet er den eindeutigen API-Schlüssel, um sich selbst zu verifizieren. API-Schlüssel sind weniger sicher, weil der Client den Schlüssel übertragen muss, was ihn gegenüber Netzwerk-Diebstahl anfällig macht.

OAuth

OAuth kombiniert Passwörter und Tokens, um einen äußerst sicheren Anmeldezugriff auf alle Systeme zu gewährleisten. Der Server fordert zunächst ein Passwort an und fordert anschließend ein zusätzliches Token an, um den Authorisierungsprozess abzuschließen. Das Token kann jederzeit und auch im Laufe der Zeit mit einem bestimmten Umfang und einer bestimmten Langlebigkeit überprüft werden.

Wie kann AWS Ihnen bei der RESTful-API-Verwaltung helfen?

Amazon API Gateway ist ein vollständig verwalteter Service, der Entwicklern das Erstellen, Veröffentlichen, Warten, Überwachen und Sichern von APIs im beliebigen Maß vereinfacht. Mit API Gateway können Sie RESTful-APIs erstellen, die Anwendungen mit bidirektionaler Kommunikation in Echtzeit ermöglichen:

Mit API Gateway können Sie:

  • Benutzern sowohl für API-Anforderungen als auch -Antworten Hochgeschwindigkeits-Leistungen zur Verfügung stellen.
  • Den Zugriff auf Ihre APIs mit AWS Identity and Access Management (IAM) und Amazon Cognito autorisieren. Beide davon stellen nativen OAuth-Support zu Verfügung.
  • Mit API Gateway gleichzeitig mehrere Versionen derselben API ausführen, sodass Sie neue Versionen schnell iterieren, testen und freigeben können.
  • Leistungsmetriken und Informationen über API-Aufrufe, Datenlatenz und Fehlerraten vom API-Gateway überwachen. 

Beginnen Sie heute noch Ihre ersten Schritte mit API Gateway mithilfe unserer schrittweisen Anleitung und Erstellung eines AWS-Kontos.

Die nächsten Schritte mit AWS-Computernetzwerken

Sehen Sie sich zusätzliche produktbezogene Ressourcen an
Erfahren Sie mehr über Netzwerk-Services 
Registrieren Sie sich für ein kostenloses Konto

Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.

Registrieren Sie sich für das kostenloses Kontingent von API Gateway 
Beginnen Sie mit der Entwicklung in der Konsole

Starten Sie mit der Entwicklung mit Amazon Transcribe in der AWS-Managementkonsole.

Anmelden