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 auch, dass APIs „Maschinen dabei helfen, mit anderen Maschinen zu kommunizieren“, da sie über einen strukturierten Regelsatz eine programmgesteuerte Interaktion zwischen Systemen ermöglichen, ohne dass dabei eine webbasierte Nutzeroberfläche benötigt wird.
Außerdem lassen sich mithilfe von APIs neue Lösungen mit bestehenden 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.
Es gibt zwar mehrere Arten von API-Architekturen, wie SOAP (Simple Object Access Protocol) APIs, GraphQL APIs und RPC (Remote Procedure Call) APIs, in diesem Leitfaden konzentrieren wir uns jedoch auf eine der gängigsten: Representational State Transfer (REST). Webservices, die auf REST APIs ausgelegt sind, werden als RESTful APIs bezeichnet. RESTful APIs verwenden HTTP und ähneln in ihrem Aussehen der URL einer Website.
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 dem Tippen des Straßennamens begonnen haben, erscheinen automatische Adressvorschläge samt Hausnummer, Ort und Postleitzahl. 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 vielleicht sogar für ein Bonusprogramm registrieren und Punkte auf Ihre Bestellung sammeln, indem Sie sich ganz einfach über Ihre bevorzugte Social-Media-Plattform registrieren.
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.
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 von Dingen ausführen, wie etwa die Erstellung eines neuen Accounts für ein Bonusprogramm mithilfe der Facebook API. Außerdem können sie Daten, wie zum Beispiel Adressen über die Google Maps API, abrufen.
Sehen wir uns einmal genauer an, aus welchen fünf Komponenten sich eine API-Anfrage zusammensetzt:
Die Basis-URL: Hierbei handelt es sich um den Präfix für den Endpoint.
Der Endpoint: Dieser bestimmt, wohin die Anfrage geht.
Die Methode: Diese legt fest, um welche Art von Anfrage es sich handelt.
Die Header: Sie liefern Client und Server die benötigten Informationen, um miteinander zu kommunizieren.
Der Body: Dieser 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 ein Beispiel-Endpoint für die 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 unserem Beispiel lautet die Basis-URL https://maps.googleapis.com. Der Pfad des Endpoints bestimmt, welche Ressourcen Sie anfordern. In diesem Fall fordern wir eine bestimmte Ressource der Google Maps Places API namens Autocomplete an, deren Pfad folgendermaßen lautet: /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 gängigsten Methoden stehen im Zusammenhang mit den CRUD-Funktionen: POST (erstellen), GET (lesen), PUT (aktualisieren) und DELETE (löschen). Die Methode teilt der API mit, welche Aktion ausgeführt werden soll, und jeder Endpoint erwartet eine bestimmte Methode.
Eine weitere Komponente, die für API Calls verwendet wird, ist der Anfrage-Header. Hierbei handelt es sich tatsächlich um einen HTTP Header, der zusätzliche Informationen über den Kontext der Anfrage liefert. Beispielsweise kann im Anfrage-Header festgelegt sein, in welcher Sprache die Antwort bevorzugt zurückgegeben werden soll. Die meisten APIs erfordern außerdem Authentifizierungs-Header, die dem Client Informationen zur Authentifizierung liefern. Hierbei handelt es sich um eine Art persönliches Zertifikat, das die Legitimität der Person, die die API verwendet, bestätigt und zur Gewährleistung der API-Sicherheit beiträgt.
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 er 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",
}
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 Informationen über einen bestimmten Nutzer 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.
API-Sicherheit ist unerlässlich. Sie müssen Ihre sensiblen Daten schützen und sicherstellen, dass nur autorisierte Personen auf Ihre API zugreifen können. 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. Eine weitere Option ist OAuth (Open Authorization). Dabei handelt es sich um ein Standardprotokoll, mit dem Nutzer Anwendungen von Drittanbietern Zugriff auf ihre Ressourcen gewähren können, ohne ihre Anmeldedaten weitergeben 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.
Wenn Sie möchten, dass Entwickler Ihre API effektiv nutzen, brauchen Sie eine klare und umfassende Dokumentation. 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.
Im Zuge des Wachstums und der Weiterentwicklung Ihrer API gewinnt die Versionierung zunehmend an Bedeutung, da neue Funktionen und Änderungen Ihre bestehenden Integrationen nicht beeinträchtigen sollen. 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 gerade 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. Denken Sie auch daran, bei der Einführung wesentlicher Änderungen Migrationsleitfäden bereitzustellen.
Das Testen Ihrer API lässt sich mit einem umfassenden Gesundheitscheck vergleichen. Sie möchten sicherstellen, dass sie zuverlässig funktioniert, eine gute Performance bietet und die erforderlichen Spezifikationen erfüllt. 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.
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.
Die Fastly API ist ein RESTful API, die Zugriff auf alle Funktionen bietet, die über die Fastly Weboberfläche 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.
Mehr über die Fastly API erfahren Sie in unserer API-Dokumentation. Und das Beste ist: Sie können die Fastly API mit Ihrem Fastly Account kostenlos nutzen.
Mehr zum Thema API-Sicherheit mit Fastly