Als Application Programming Interface (API) bezeichnet man eine Reihe von Protokollen, die es unterschiedlichen Softwaresystemen ermöglichen, unabhängig von ihrer Programmiersprache oder Plattform miteinander zu kommunizieren. Oft heißt es, dass APIs „Maschinen dabei helfen, mit anderen Maschinen zu kommunizieren“, da sie über einen strukturierten Regelsatz eine programmgesteuerte Interaktion zwischen Systemen ermöglichen, anstatt eine webbasierte Nutzeroberfläche zu nutzen.
Mithilfe von APIs können Sie zudem neue Lösungen in bestehende Anwendungen integrieren und Prozesse automatisieren. Im Web gibt es Tausende von APIs, die kostenlos zur Verfügung stehen. Entsprechende APIs finden Sie in API-Verzeichnissen wie dem Postman API Network oder gegebenenfalls direkt auf der Website des Service oder des Produkts, zu dem Sie eine Verbindung herstellen möchten.
Obwohl es mehrere Arten von API-Architekturen gibt, wie SOAP (Simple Object Access Protocol) APIs, GraphQL APIs und RPC (Remote Procedure Call) APIs, konzentriert sich dieser Leitfaden auf eine der gebräuchlichsten: Representational State Transfer (REST). Webdienste, die dem REST API-Stil entsprechen, werden als RESTful APIs bezeichnet. RESTful APIs verwenden HTTP und ähneln in ihrem Aussehen der URL einer Website.
Was ist ein Beispiel für eine API?
Sie haben wahrscheinlich bereits APIs in Aktion erlebt, ohne sich dessen bewusst gewesen zu sein. Stellen Sie sich vor, Sie bestellen Ihr Mittagessen über die Website Ihres Lieblingsrestaurants. Beim Bezahlen müssen Sie Ihre Lieferanschrift eingeben. Schon kurz nachdem Sie mit der Eingabe Ihrer Adresse in der Suchleiste begonnen haben, werden Stadt, Bundesland und Postleitzahl automatisch vervollständigt. Anschließend geben Sie Ihre Zahlungsinformationen ein und stellen fest, dass die Zahlungsdaten über einen vertrauenswürdigen Anbieter für mobile Zahlungen abgewickelt werden. Nachdem Sie Ihre Bestellung aufgegeben haben, können Sie sich für ein Bonusprogramm registrieren und durch die einfache Anmeldung über Ihre bevorzugte Social-Media-Plattform Prämien basierend auf Ihrer Bestellung erhalten.
Die Autovervollständigung der Adresse, die Zahlungsabwicklung und die Anmeldung über Social Media sind allesamt Beispiele für API-Integrationen. Anstatt jede dieser Komponenten von Grund auf neu erstellen zu müssen, verwendet die Website die Google Maps API, um Lieferadressen einfach zu erfassen, die Square API, um eine Integration mit dem Zahlungsabwicklungssystem von Square herzustellen, und die Facebook API, um Bonuskonten im Handumdrehen zu erstellen.
Wie funktionieren REST APIs?
REST APIs nutzen HTTP-Anfragen und -Antworten, um Informationen über das Internet auszutauschen. Dies ist von Vorteil, da der Web Client, der die Anfrage stellt, und der API-Server, der antwortet, eine gemeinsame Sprache sprechen. Die Nachrichten, die mit der Anfrage und Antwort versendet werden, nutzen ein gemeinsames HTTP-Webprotokoll.
Es gibt zahlreiche gängige Anwendungsfälle für REST APIs, die in der Regel den Standardfunktionen zum Erstellen, Abrufen, Aktualisieren und Löschen (Create, Retrieve, Update, Delete – CRUD) von Datenbanken entsprechen. REST APIs können beispielsweise Aktionen zum Erstellen ausführen, indem sie beispielsweise die Facebook API nutzen, um einen neuen Account für ein Bonusprogramm zu erstellen. Sie können Daten auch abrufen, indem sie beispielsweise die Google Maps API verwenden, um Adressen zu ermitteln.
Die Anatomie einer API-Anfrage
Sehen wir uns einmal genauer an, aus welchen fünf Komponenten sich eine API-Anfrage zusammensetzt:
Die Basis-URL: das Präfix für den Endpunkt.
Der Endpunkt: Dieser gibt an, wohin die Anfrage gesendet werden soll.
Die Methode: Bestimmt die Art der Anfrage.
Die Header: Sie liefern Informationen, die Client und Server bei der Kommunikation untereinander unterstützen.
Der Body: Enthält die Informationen, die Sie an den Server senden möchten.
Nachdem wir die Grundlagen nun kennen, wollen wir etwas tiefer in die Materie einsteigen.
Hier ist ein Beispiel für einen Endpunkt der Google Maps Places API:
https://maps.googleapis.com/maps/api/place/autocomplete/
Dieser Endpoint setzt sich aus zwei Komponenten zusammen. Bei der ersten dieser Komponenten handelt es sich um die Basis-URL, also die Domain, über die die API bereitgestellt wird. In diesem Beispiel ist https://maps.googleapis.com die Basis-URL. Der Pfad des Endpoints bestimmt, welche Ressourcen Sie anfordern. Hier fordern wir eine spezielle Ressource der Google Maps Places API namens Autocomplete an, daher haben wir diesen Pfad: /maps/api/place/autocomplete
Der Pfad sieht deshalb verdächtig nach einer URL aus, weil es sich dabei auch tatsächlich um eine URL handelt. Schließlich erfolgt die Anfrage per HTTP. Wenn Sie diese URL in Ihren Browser eingeben, gelangen Sie auf eine ganz einfache HTML-Seite. Je nach API finden Sie dort auf unterschiedliche Weise formatierte Antworten. Das häufigste Antwortformat ist allerdings JSON.
Um aber mit der API auch wirklich etwas anfangen zu können, werden noch weitere Komponenten benötigt. Zu allererst brauchen wir eine Methode. Methoden sind festgelegte Keywords, die in jeder Anfrage enthalten sein müssen. Die gebräuchlichsten Methoden beziehen sich auf die CRUD-Operations: POST (erstellen), GET (lesen), PUT (aktualisieren) und DELETE. Die Methode teilt der API mit, welche Aktion ausgeführt werden soll, und jeder Endpoint erwartet eine bestimmte Methode.
Was ist ein Anfrage-Header?
Eine weitere Komponente, die zum Aufrufen eines API verwendet wird, ist ein Anfrage-Header. Ein Anfrage-Header ist eigentlich ein HTTP-Header. Er enthält zusätzliche Informationen über den Kontext der Anfrage. Beispielsweise kann im Anfrage-Header festgelegt sein, in welcher Sprache die Antwort bevorzugt angezeigt werden soll. Die meisten APIs erfordern außerdem Authentifizierungs-Header, die dem Client Informationen zur Authentifizierung liefern. Diese sind wie ein persönliches Zertifikat, das zeigt, dass die Person, die die API verwendet, legitim ist und hilft, die API-Sicherheit zu gewährleisten.
Abhängig von der verwendeten Methode müssen Sie möglicherweise zusätzliche Daten im Body der Anfrage definieren. Wenn Sie beispielsweise etwas mit einer POST-Methode erstellen, werden bei der Erstellung möglicherweise Datenfelder verwendet, in die Sie etwas eingeben müssen.
Nehmen wir zum Beispiel an, ein Nutzer registriert sich für ein Bonusprogramm. Um einen Account zu erstellen, füllt der Nutzer bestimmte Felder auf Ihrer Website aus. Im Backend wird eine API aufgerufen und die vom Nutzer eingegebenen Details werden im Body der Anfrage verwendet:
{
"first_name": "Kris",
"last_name": "Owner",
"email": "krisowner@email.com",
}Aufruf einer API
Wir wissen inzwischen, woraus eine API-Anfrage besteht. Aber wie funktioniert ein API Call? Um eine API sofort zu testen und die Antwort zu sehen, können Sie die Anfrage über curl oder eine Anwendung wie Postman senden.
Nehmen wir einmal an, Sie möchten die Details für einen bestimmten Nutzer-Account abrufen. Die Antwort könnte in etwa folgendermaßen aussehen:
HTTP/1.1 200 OK
Content-Type: application/json{
"comment": "",
"created_at": "2020-04-27T19:40:49+00:00",
"deleted_at": null,
"customer_id": "x4xCwxxJxGCx123Rx5xTx",
"first_name": "Kris",
"last_name": "Owner",
"email": "krisowner@email.com",
}Die Antwort, die Sie erhalten, hängt von der API und von der von Ihnen getätigten Anfrage ab.
Sehen wir uns das Ganze einmal genauer an. Die erste Zeile enthält den Status, in diesem Fall 200, was bedeutet, dass die Anfrage erfolgreich war. In der nächsten Zeile gibt der Header „Content-Type“ an, in welchem Format die von Ihnen angeforderten Informationen vorliegen, in diesem Fall, JSON. Im Body der Antwort finden wir schließlich die gewünschten Angaben zum Nutzer.
Unser Beispiel zeigt einen einfachen Datenabruf mithilfe einer API. Dieselben Informationen könnten Sie wahrscheinlich auch erhalten, wenn Sie sich über die Weboberfläche Ihrer Anwendung einloggen würden. Ein wahrscheinlicherer Anwendungsfall für einen API Call ist die Integration Ihrer Anfrage in Ihre Anwendung und die Verarbeitung der Daten, die Sie in der Antwort erhalten.
Wie gewährleisten Sie die API-Sicherheit?
Wenn es um API-Sicherheit geht, ist Sicherheit entscheidend. Sie müssen Ihre sensiblen Daten schützen und sicherstellen, dass nur autorisierte Personen Zugriff auf Ihre API haben. Neben den bereits erwähnten Authentifizierungs-Headern sind API Keys eine gängige Methode, um Kunden zu authentifizieren und sicherzustellen, dass nur berechtigte Personen Zugriff erhalten. OAuth (Open Authorization) ist eine weitere Option – es ist ein Standardprotokoll, das es Nutzern ermöglicht, Drittanbieter-Apps Zugriff auf ihre Ressourcen zu gewähren, ohne ihre Log-in-Daten teilen zu müssen. Die Begrenzung der Anzahl der Anfragen, die in einem bestimmten Zeitraum bearbeitet werden können, ist ebenfalls wichtig, um Missbrauch zu verhindern und einen reibungslosen Betrieb Ihrer API zu gewährleisten. Eine HTTPS-Verschlüsselung ist unumgänglich, um die Sicherheit Ihrer gesamten API-Kommunikation während der Übertragung zu gewährleisten und zu verhindern, dass sensible Informationen in die falschen Hände geraten.
Warum ist die API-Dokumentation so wichtig?
Wenn Sie möchten, dass Entwickler Ihre API effektiv nutzen, benötigen Sie eine klare und umfassende Dokumentation. Sie ist wie eine Art Leitfaden, die ihnen hilft zu verstehen, wie sie Ihre API optimal nutzen können. Darin sollten alle wichtigen Informationen enthalten sein, darunter Endpoints, Anfrage- und Antwortformate, Authentifizierungsanforderungen und sogar einige Codebeispiele für den Einstieg. Außerdem sollten Sie Informationen zur Fehlerbehebung, zum Rate Limiting und zu spezifischen Best Practices oder Einschränkungen bereitstellen, die mit Ihrer API einhergehen. Eine gute API-Dokumentation verkürzt den Lernprozess und hilft Entwicklern, die API naht- und reibungslos in ihre Anwendungen zu integrieren.
Was versteht man unter API-Versionierung?
Mit dem Wachstum und der Weiterentwicklung Ihrer API wird die Versionierung zu einem entscheidenden Bestandteil des Prozesses. Sie sollten neue Funktionen hinzufügen und Änderungen vornehmen können, ohne bestehende Integrationen zu beeinträchtigen. Eine Möglichkeit besteht darin, die Versionsnummer direkt in die API URL zu integrieren, zum Beispiel: /api/v1/resources. Auf diese Weise ist klar, welche Version der API verwendet wird. Ein anderer Ansatz ist die Verwendung von Versionsnummern im Anfrage-Header. So können Kunden die gewünschte Version angeben. Der Schlüssel liegt darin, eine solide Versionierungsstrategie festzulegen und sicherzustellen, dass Sie alle Änderungen an die Entwickler kommunizieren. Vergessen Sie nicht, bei der Einführung inkompatibler Änderungen Migrationsleitfäden bereitzustellen.
Warum müssen Sie API-Tests durchführen?
Das Testen Ihrer API lässt sich mit einem umfassenden Funktionstest vergleichen. Sie sollten sicherstellen, dass sie zuverlässig ist, gut funktioniert und den erforderlichen Spezifikationen entspricht. Unit-Tests sind ein guter Ausgangspunkt, da Sie damit einzelne Komponenten Ihrer API testen und sicherstellen können, dass sich jede Funktion oder Methode wie erwartet verhält.
Integrationstests sind ein weiterer wichtiger Schritt, um sicherzustellen, dass die verschiedenen Komponenten Ihrer API reibungslos miteinander funktionieren und die gewünschten Ergebnisse liefern.
Und wenn Sie Ihre API wirklich auf Herz und Nieren prüfen möchten, können Sie auch Belastungstests durchführen. Belastungstests helfen Ihnen, Performance-Engpässe aufzudecken und sicherzustellen, dass Ihre API den Traffic-Erwartungen gerecht werden kann. Es gibt zahlreiche automatisierte Testtools und Frameworks, die Ihnen das Testen von APIs erleichtern und Ihnen dabei helfen können, mögliche Probleme frühzeitig zu erkennen. Einige Beispiele sind: Postman, SoapUI und JMeter.
Was versteht man unter API Lifecycle Management?
Die Verwaltung Ihrer API während ihres gesamten Lebenszyklus ist der Schlüssel zu langfristigem Erfolg und einfacher Wartung. API-Gateways funktionieren wie Türsteher in einem Club – sie bieten einen einzigen Zugangspunkt für alle Ihre API-Anfragen und übernehmen wichtige Aufgaben wie Authentifizierung, Rate Limiting und das Weiterleiten von Anfragen.
Versionierungs- und Deaktivierungsstrategien (API-Einstellung) sind ebenfalls ein wichtiger Bestandteil des API Lifecycle. Wenn Sie eine neue Version Ihrer API einführen, stellen Sie sicher, dass Sie klare Migrationspfade bereitstellen und die Entwickler darüber informieren, wann ältere Versionen auslaufen sollen. Und wenn Sie jemals eine API aus dem Verkehr ziehen müssen, geben Sie den Entwicklern genügend Vorlaufzeit, damit sie ihre Integrationen aktualisieren können. Ein wenig Planung und Kommunikation tragen wesentlich dazu bei, dass Ihre API reibungslos funktioniert und größere Unterbrechungen für Ihre Nutzer vermieden werden.
Hinweise zur Nutzung der Fastly API
Die Fastly API ist eine RESTful API, die Zugriff auf alle Funktionen bietet, die über das Fastly Web-Interface verfügbar sind.
Durch die Nutzung der API können Sie mit den mit Ihren Fastly Services und Accounts verknüpften Objekten auf die für Sie bequemste Weise arbeiten, sei es durch Integration in Ihre bestehenden Workflows oder durch Automatisierung häufiger oder umständlicher Prozesse. Sie können beispielsweise die Echtzeitanalyse-API von Fastly verwenden, um Fastly Analysen in Ihr individuelles Analyse-Dashboard zu integrieren. Oder Sie können eine automatisierte Bereinigung einrichten. Die Möglichkeiten sind nur durch Ihre Vorstellungskraft (und Ihre Programmierkenntnisse) begrenzt.
Erfahren Sie mehr über Fastlys API in unserer API-Referenzdokumentation. Am besten ist, dass die Fastly API kostenlos mit Ihrem Fastly-Konto genutzt werden kann.