Was sind die Komponenten einer API

APIGit

2023-04-19

card-Components-of-an-API

Was sind die Komponenten einer API?

APIs sind Sätze von codebasierten Anweisungen, die es Softwarekomponenten ermöglichen, Daten zu kommunizieren und zu übertragen, und sie sind die Bausteine aller modernen Anwendungen. Aber was sind die Bausteine von APIs selbst? In diesem Artikel werden wir die verschiedenen Komponenten einer REST-API überprüfen, indem wir einer Anfrage von Ende zu Ende folgen.

API-Client

API-Anfragen können auf viele verschiedene Arten ausgelöst werden. Beispielsweise kann ein Benutzer eine API-Anfrage initiieren, indem er einen Suchbegriff eingibt, auf eine Schaltfläche klickt oder durch eine Liste in einer Web- oder Mobilanwendung scrollt. API-Anforderungen können auch als Reaktion auf externe Ereignisse ausgegeben werden, wie z. B. eine Benachrichtigung von einer anderen Anwendung oder einem anderen Dienst. Unabhängig davon, wie die API-Anforderung ausgelöst wird, ist ein API-Client dafür verantwortlich, sie zusammenzustellen und an den API-Server weiterzuleiten.

Es ist wichtig zu beachten, dass der Begriff „API-Client“ je nach Kontext unterschiedliche Bedeutungen haben kann. Erstens kann es sich auf ein Entwicklungstool beziehen, das einen Teil der Komplexität des manuellen Sendens von API-Anforderungen abstrahiert, wodurch das Erkunden, Testen und Debuggen von APIs vereinfacht wird. Es kann sich auch auf einen Dienst beziehen, der sprachspezifische Bibliotheken und SDKs verwendet, um API-Anforderungen im Kontext einer größeren Anwendung zu initiieren. Beide Arten von API-Clients sind dafür verantwortlich, die von der API zurückgegebenen Daten zu verarbeiten und sie dem Benutzer zu präsentieren, aber der letztere Client-Typ kann die zurückgegebenen Daten auch im logischen Fluss der Anwendung verwenden.

API-Anfrage

Wir haben erwähnt, dass ein API-Client für das Senden von API-Anfragen als Reaktion auf Benutzeraktionen oder externe Ereignisse verantwortlich ist, aber was genau ist eine API-Anfrage? Eine API-Anforderung sieht je nach API-Typ anders aus und verhält sich anders. Davon abgesehen besteht eine API-Anforderung an eine REST-API aus den folgenden Komponenten:

  • Endpunkt: Jede API-Anforderung wird an einen API-Endpunkt geleitet, bei dem es sich um eine dedizierte URL handelt, die Zugriff auf eine bestimmte Ressource bietet. Beispielsweise würde der /products-Endpunkt in einer E-Commerce-App die Logik für die Verarbeitung aller Anfragen enthalten, die sich auf Produkte beziehen. Die Anfrage muss daher einen Endpunkt bezeichnen, damit der API-Server weiß, wie er vorgehen muss. Wir werden den API-Server bald ausführlicher besprechen.
  • Methode: Jede API-Anforderung muss eine Methode enthalten, die die Operation definiert, die der Client auf der angegebenen Ressource ausführen möchte. Auf REST-APIs kann über Standard-HTTP-Methoden wie GET, POST, PUT, PATCH und DELETE zugegriffen werden, die allgemeine Aktionen wie das Abrufen, Erstellen, Aktualisieren oder Löschen von Daten erleichtern. Eine GET-Anforderung an den /products-Endpunkt würde den API-Server anweisen, jedes Produkt in der Datenbank zurückzugeben.
  • Parameter: Parameter sind die Variablen, die an einen API-Endpunkt übergeben werden, um spezifische Anweisungen für die Verarbeitung durch die API bereitzustellen. Diese Parameter können in der API-Anfrage als Teil der URL, in der Abfragezeichenfolge oder im Anfragetext enthalten sein. Beispielsweise könnte der /products-Endpunkt einer E-Commerce-API einen „Farb“-Parameter akzeptieren, den er verwenden würde, um auf Produkte einer bestimmten Farbe zuzugreifen und diese zurückzugeben.
  • Header anfordern: API-Anfrage-Header sind Schlüssel-Wert-Paare, die zusätzliche Informationen über die Anfrage liefern. Beispielsweise gibt der Content-Type-Header das Format der Daten im Anforderungstext an, während der Authorization-Header Authentifizierungsdaten wie einen API-Schlüssel oder ein OAuth-Token bereitstellt, um den Anforderer zu authentifizieren.
  • Anfragetext: Der Anforderungstext enthält die eigentlichen Daten, die zum Erstellen, Aktualisieren oder Löschen einer Ressource erforderlich sind. Wenn beispielsweise ein Administrator eines E-Commerce-Shops ein neues Produkt erstellen muss, kann der Anfragetext den Namen, die Marke und den Preis des Produkts enthalten. Die API-Spezifikation schreibt das erforderliche Datenformat für die Anfrage vor, z. B. JSON oder XML.

API-Server

Sobald der API-Client die Anfrage zusammengestellt hat, sendet er sie zur Verarbeitung an den entsprechenden Endpunkt auf dem API-Server. Der API-Server ist für die Abwicklung der Authentifizierung, die Validierung von Eingabedaten, das Abrufen oder Bearbeiten von Daten aus einer Datenbank und das Zurücksenden der entsprechenden Antwort an den Client verantwortlich.

Es ist wichtig zu beachten, dass die Datenbank zwar selbst keine API-Komponente ist, die API jedoch nicht ohne sie funktionieren kann. Während der API-Server Anwendungsdaten basierend auf einer Anfrage abruft und bearbeitet, speichert und organisiert die Datenbank diese Daten auf eine Weise, die eine effiziente Abfrage und Bearbeitung erleichtert. Der API-Server fungiert also als Vermittler zwischen dem API-Client und der Datenbank.

API-Antwort

Wir haben oben erwähnt, dass der API-Server dafür verantwortlich ist, eine Antwort an den Client zu senden, nachdem er die Anfrage verarbeitet hat. Der Inhalt von API-Antworten kann je nach Art der Anfrage und dem Design der API stark variieren, enthält jedoch normalerweise die folgenden Komponenten:

  • Statuscode: API-Statuscodes sind HTTP-Statuscodes, die von einer API zurückgegeben werden, um den Status einer Clientanforderung anzugeben. Diese Codes werden verwendet, um dem Client Informationen über das Ergebnis der Anfrage bereitzustellen und dem Client zu helfen, zu verstehen, wie er vorgehen soll. Einige der häufigsten Statuscodes sind 200 OK, was anzeigt, dass der Server die angeforderten Daten erfolgreich zurückgegeben hat, 201 Created, was anzeigt, dass der Server erfolgreich eine neue Ressource erstellt hat, und 404 Not Found, was anzeigt, dass der Server die angeforderten Daten nicht finden konnte Ressource.
  • Antwortheader: Response-Header sind Request-Headern sehr ähnlich, außer dass sie verwendet werden, um zusätzliche Informationen über die Antwort des Servers bereitzustellen. Der Cache-Control-Header gibt beispielsweise Anweisungen, wie lange die Daten in einem Cache gespeichert werden können, während der Set-Cookie-Header ein Cookie im Browser setzt, das für das Sitzungsmanagement oder die Authentifizierung verwendet werden kann.
  • Antworttext: Der Antworttext enthält die Daten oder Inhalte, die vom API-Server als Antwort auf die Anfrage des Clients zurückgegeben werden. Die Antworttexte sind sehr unterschiedlich, enthalten jedoch typischerweise strukturierte Datenobjekte, die die angeforderten Ressourcen, Metadaten und – falls die Anforderung fehlgeschlagen ist – Fehlermeldungen darüber, was schief gelaufen ist, darstellen. Beispielsweise kann eine erfolgreiche GET-Anforderung für ein bestimmtes Produkt eine JSON-Darstellung dieses Produkts sowie einen Zeitstempel und die Quelle der Daten enthalten.

Während REST die gebräuchlichste API-Architektur ist, haben andere Arten von APIs, wie GraphQL und gRPC, andere Komponenten. Dennoch enthält diese Liste die Kernkomponenten, die an der Ausführung von Anforderungen an jede RESTful-API beteiligt sind.

Heute nutzen Zehntausende von Entwicklern die Apitgit-Plattform. Apitgit vereinfacht jeden Schritt des API-Lebenszyklus und optimiert die Zusammenarbeit, damit Sie schneller bessere APIs erstellen können.