Wie funktionieren APIs?

APIs ermöglichen Anwendungen den Austausch von Informationen durch das Senden und Empfangen von API-Aufrufen.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Beschreiben, wie APIs funktionieren
  • Unterscheidung zwischen einem API-Endpunkt und einem Client
  • Vergleich verschiedener API-Protokolle

Ähnliche Inhalte


Möchten Sie noch mehr erfahren?

Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!

Lesen Sie die Cloudflare Datenschutzrichtlinie, um zu erfahren, wie wir Ihre persönlichen Daten sammeln und verarbeiten.

Link zum Artikel kopieren

Wie funktionieren APIs?

Anwendungsprogrammierschnittstellen (APIs) ermöglichen es Softwareprogrammen, miteinander zu kommunizieren, indem sie API-Aufrufe oder Anfragen nach Informationen senden und empfangen. Diese Anfragen werden von einem API-Client initiiert und von einem API-Endpunkt angenommen.

Um Informationen zwischen APIs auszutauschen, müssen Entwickler eine API-Dokumentation bereitstellen, in der die Arten von Anfragen, die eine API akzeptieren kann, die Anwendungsfälle, die sie unterstützen soll, und alle anderen Bedingungen (z. B. Protokolle, Schemata und Sicherheitsanforderungen), die von Dritten zu befolgen sind.

Durch API-Aufrufe können APIs Funktionen gemeinsam nutzen, ohne dass Entwickler die Funktionen für jede einzelne Anwendung von Grund auf neu schreiben müssen. Ohne sie wären Entwickler nicht in der Lage, Funktionen problemlos über mehrere Anwendungen hinweg zu replizieren oder Daten von anderen Anwendungen, Diensten und Anbietern abzufragen.

Was ist ein API?

Eine API ist eine Schnittstelle, die es Softwareprogrammen ermöglicht, Daten und Funktionen gemeinsam zu nutzen. Diese Kommunikationsmethode trägt dazu bei, die Funktionalitäten der meisten modernen Webanwendungen zu verbessern.

Stellen Sie sich zum Beispiel vor, Alice entwickelt eine Anwendung, die Wiedergabelisten mit klassischer Musik an die Stimmungen der Hörer anpasst. Anstatt Tausende von Titeln manuell einzugeben, um diese Wiedergabelisten aufzufüllen, kann sie eine API verwenden, die eine Verbindung zu einem externen Musikspeicher herstellt - und so Zeit, Geld und Entwicklungsaufwand sparen.

Die Anwendungsfälle für APIs sind nahezu unbegrenzt. Sie verbinden mit Cloud-Diensten, fragen Datenbanken ab, aktualisieren automatisch mobile Anwendungen, streamen Inhalte auf mehrere Geräte, fassen Flugpreise und Lieferoptionen für Lebensmittel zusammen und vieles mehr.

Was ist ein API-Client?

Ein API-Client, manchmal auch "Benutzer" genannt, ist die Software, die einen API-Aufruf initiiert.

Bevor er mit einem API-Endpunkt interagieren kann, muss ein API-Client seine Identität verifizieren. Dadurch wird verhindert, dass Angreifer APIs ausnutzen, um verteilte Denial-of-Service-Angriffe (DDoS) oder andere böswillige Aktionen durchzuführen.

Die Authentifizierung erfolgt in der Regel über eine von vier Methoden: eine eindeutige Zeichenfolge (API-Schlüssel), eine Kombination aus Benutzername und Passwort, ein OAuth-Token oder mutual TLS. Die Verwendung einer starken Authentifizierungsmethode ist eine der Möglichkeiten, mit denen Entwickler ihre API vor Angriffen schützen können. (Erfahren Sie mehr über API-Sicherheit.)

Was ist ein API-Endpunkt?

Ein API-Endpunkt nimmt den API-Aufruf entgegen und gibt die angeforderten Informationen zurück.

Sowohl API-Clients als auch Endpunkte beziehen sich auf Softwareprogramme, die auf Servern gehostet werden, und nicht auf diskrete Hardwaregeräte. API-Server können mehrere Endpunkte beherbergen, denen jeweils ein einheitlicher Ressourcenbezeichner (URI) zugewiesen wird, mit dem sie von einem API-Client gefunden werden können. In den meisten Fällen handelt es sich bei diesem URI um einen Uniform Resource Locator (URL), der auf internetbasierte Orte (z. B. eine Website) verweist.

Was ist ein API-Schema?

Bei einem API-Schema handelt es sich um Metadaten, die die Spezifikationen definieren, die eine API-Anfrage erfüllen muss, um als gültig zu gelten. Diese Spezifikationen können Details wie den Zielendpunkt, die HTTP-Methode und andere von den Entwicklern festgelegte Anforderungen enthalten.

Wenn ein API-Aufruf von einem Client gesendet wird, muss er die im Schema beschriebenen Bedingungen erfüllen. Nur dann kann ein API-Endpunkt die angeforderten Informationen zurückgeben. Stellen Sie sich vor, Bob plant eine Party, um die Situation zu verdeutlichen. Auf der Einladung steht, dass nur Gäste, die gelbe Gänseblümchen mitbringen, nach der Party eine Dankeskarte erhalten. Wenn Carol jedoch beschließt, rote Rosen zu der Party mitzubringen, wird sie danach keine Dankeskarte erhalten.

Ebenso erhält ein API-Aufruf, der nicht die im API-Schema festgelegten Anforderungen erfüllt, keine Antwort.

Was ist ein API?

Wie die APIs selbst variieren auch die API-Aufrufe je nach den in der API-Dokumentation dargelegten Spezifikationen. Im Allgemeinen folgt ein API-Aufruf jedoch drei grundlegenden Schritten:

  1. Der API-Client initiiert den API-Aufruf oder die Anfrage nach Informationen. Der API-Client muss die Anfrage gemäß dem vom API-Endpunkt bereitgestellten Protokoll und Schema formatieren.
  2. Der API-Endpunkt empfängt die Anfrage. Der API-Endpunkt authentifiziert dann den API-Client und validiert das API-Schema. Dadurch wird sichergestellt, dass a) der Anruf von einer verifizierten Quelle stammt und b) die Bedingungen der Anfrage erfüllt sind.
  3. Der API-Endpunkt gibt die angeforderten Informationen an den API-Client zurück. Das API-Schema bestimmt die Art der Antworten, die an den Client zurückgegeben werden können.

Eine ausführlichere Erklärung von API-Aufrufen finden Sie unter Was ist ein API-Aufruf?

Welche Protokolle und Architekturen werden bei APIs verwendet?

APIs werden von mehreren verschiedenen Protokollen unterstützt. Ein Protokoll ist eine Methode zur Kommunikation über ein Netzwerk; es teilt der API mit, wie Anfragen und Antworten zu formatieren sind. Welche Art von API-Protokoll verwendet wird, hängt von dem Zweck ab, für den die API entwickelt wurde, den Anwendungsfällen, denen sie dient, und den Einschränkungen, die sie mit sich bringt.

Die beiden gebräuchlichsten API-Protokolle sind Simple Object Access Protocol (SOAP) und Remote Procedural Call (RPC). Representational State Transfer (REST) ist eine Softwarearchitektur, die oft mit diesen Protokollen verglichen wird.

SOAP bietet eine standardisierte Methode zum Senden und Empfangen von Aufrufen zwischen APIs, die verschiedene Betriebssysteme und Architekturen verwenden. Es ist auch kompatibel mit dem Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP)und anderen Protokollen der Anwendungsschicht. Es kann nur Daten an API-Clients zurückgeben, die eine erweiterbare Auszeichnungssprache (XML) verwenden.

RPC ist eine der einfachsten und ältesten Methoden der Kommunikation zwischen APIs. Es funktioniert, indem ein prozeduraler Fernaufrufinitiiert wird, bei dem ein Client eine Funktion von einem entfernten Server anfordert. Der Hauptunterschied zwischen RPC und SOAP/REST besteht darin, dass RPC die Durchführung bestimmter Aktionen (oder Funktionen) unterstützt, während SOAP/REST zum Abrufen von Ressourcen (oder Daten) verwendet wird.

REST bezieht sich auf eine REST-Architektur, die teilweise vorschreibt, wie API-Aufrufe zu formatieren sind. Einfach ausgedrückt, ermöglicht REST einem Client, Ressourcen von einem Server anzufordern, der die Informationen in seinem aktuellen Zustand an den Client zurückgibt. REST-APIs verwenden häufig das HTTP-Protokoll zur Formatierung von Anfragen und Antworten, sind aber auch mit dem FTP-, SMTP- und anderen Protokoll kompatibel. Sie können Daten in verschiedenen Formaten an API-Clients zurückgeben, darunter XML, JavaScript Object Notation (JSON) und Hypertext Markup Language (HTML).

Sind APIs anfällig für Sicherheitsrisiken?

Wie alles, was mit einem Netz verbunden ist, sind auch APIs anfällig für Ausbeutung und Missbrauch. Zu den üblichen API-Angriffen gehören die folgenden:

  • Authentifizierungsbasierte Angriffe: Die Authentifizierung ist ein wichtiger Bestandteil, um sicherzustellen, dass API-Aufrufe von legitimen Quellen gesendet und empfangen werden. Angreifer können diese Maßnahmen jedoch immer noch umgehen, um Angriffe auszuführen, indem sie Authentifizierungs-Token abfangen, API-Schlüssel stehlen oder andere Taktiken anwenden, um an vertrauliche Anmeldeinformationen zu gelangen.
  • Ausnutzung von Schwachstellen: API-Schwachstellen - wie z. B. nicht funktionierende Autorisierung auf Objektebene, nicht funktionierende Benutzerauthentifizierung, übermäßige Datenexposition und andere aus den OWASP API Security Top 10 - beziehen sich auf Schwachstellen in einer API, die es Angreifern ermöglichen, unerlaubt auf sie zuzugreifen. Durch Ausnutzung dieser Schwachstellen können Angreifer Datenverletzungen vornehmen oder APIs für komplexere Angriffe nutzen.
  • DDoS-Angriffe: Angreifer können APIs mit einem hohen Datenaufkommen überfluten und so versuchen, den Dienst zu unterbrechen (oder ganz einzustellen).

Cloudflare API Gateway hilft, diese Angriffe abzuschwächen, indem es eine starke Authentifizierung bietet, Payloads auf sensible Daten scannt, API-Schemata validiert und API-Missbrauch erkennt und verhindert. Erfahren Sie mehr über Cloudflare API Gateway.