Was ist ein API?

Eine Anwendungsprogrammierschnittstelle (API) ist eine Möglichkeit für eine Software, die Funktionen einer anderen Software zu nutzen.

Lernziele

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

  • API definieren
  • API-Aufrufe, API-Endpunkte, API-Schema und API-Integration erläutern
  • Web-APIs, SOAP-APIs und REST-APIs beschreiben
  • API-Sicherheitsmaßnahmen verstehen

Link zum Artikel kopieren

Was ist eine Anwendungsprogrammierschnittstelle (API)?

Eine Anwendungsprogrammierschnittstelle (API) ist eine Reihe von Regeln, die es einem Softwareprogramm ermöglichen, Daten an ein anderes Softwareprogramm zu übertragen. Mit APIs sparen sich Entwickler überflüssige Arbeit. Anstatt bereits vorhandene Anwendungsfeatures zu entwickeln und neu zu erstellen, integrieren sie bestehende Features in ihre neuen Anwendungen, indem sie Anfragen nach den Anforderungen der API formatieren.

Eine API ist eine „Schnittstelle“, d. h. eine Methode, über die eine Komponente mit einer anderen interagieren kann. Ein Beispiel aus dem Alltag: Ein Geldautomat hat eine Schnittstelle – einen Bildschirm und mehrere Schaltflächen – über die Kunden mit ihrer Bank interagieren und Dienste wie z. B. Bargeld anfordern können. In ähnlicher Weise ist eine API die Art und Weise, wie eine Software mit einem anderen Programm interagiert, um die gewünschten Dienste zu erhalten.

Stellen Sie sich vor, Jennifer baut eine Website, mit der Pendler den Traffic auf den Autobahnen überprüfen können, bevor sie zur Arbeit fahren. Jennifer könnte mit viel Zeit und Geld ein komplexes Highway Tracking System einrichten, das den Nutzern ihrer Website diese Informationen liefert. Aber solche Systeme wurden von anderen Anbietern bereits entwickelt. Anstatt das Rad neu zu erfinden, nutzt Jennifers Website eine API, die von einem externen Highway Tracking Service angeboten wird. Jetzt kann sich Jennifer auf die Entwicklung anderer Aspekte der Website konzentrieren.

Was ist ein API-Aufruf?

Ein API-Aufruf, auch als API-Anfrage bekannt, ist eine an eine API gerichtete Nachricht, die die Verwendung der API auslöst. Um auf unser Beispiel zurückzukommen: Jennifer hat ihre Website so aufgebaut, dass sie beim Laden automatisch einen API-Aufruf an den Highway Tracking Service erzeugt. Der Dienst sendet die Antwort zurück an die Website und liefert ihr die neuesten Informationen zum Verkehrsaufkommen auf den Autobahnen.

Um zu funktionieren, müssen API-Aufrufe in Übereinstimmung mit den Anforderungen der API formatiert werden. Die Anforderungen der API nennt man ihr „Schema“. Das Schema beschreibt auch die Arten von Antworten, die auf jede Anfrage gegeben werden.

Nehmen wir an, ein Pendler informiert sich auf Jennifers Website über den Traffic auf dem Highway 192. Die Website sendet einen API-Aufruf, um diese Informationen bereitzustellen – eine Nachricht mit dem Wortlaut „Highway 192“. Der API-Server des Highway Tracking Service empfängt diese Nachricht und antwortet mit den Fahrzeiten auf dem Highway 192. Stellen Sie sich das Schema der API folgendermaßen vor:

API-Anfrage API-Antwort
„Highway 192“ Fahrzeiten auf dem Highway 192
„Highway 217“ Fahrzeiten auf dem Highway 217
„Highway 225“ Fahrzeiten auf dem Highway 225

(Beachten Sie, dass dies ein stark vereinfachtes Beispiel ist – echte API-Anfragen, -Antworten und -Schemata sind komplexer).

Nehmen wir nun an, dass Jennifers Website eine API-Anfrage für „Highway ASDFGHJ“ sendet. Dies ist keine gültige Anfrage, da sie nicht dem API-Schema entspricht, das nur die tatsächlichen Namen von Autobahnen zulässt. Der Server kann auf eine solche Anfrage keine brauchbare Antwort geben.

Was ist ein API-Endpunkt?

Ein Endpunkt ist das Ende eines Kommunikationskanals. Ein API-Endpunkt ist der Ort, von dem eine API-Antwort ausgeht.

In diesem Beispiel ist der Client der API-Verbindung Jennifers Website und der Endpunkt ist der Server, der die API hostet. Um eine Antwort zu erhalten, müssen Jennifers API-Aufrufe an eine bestimmte URL gehen (eine URL ist eine Webadresse, wie www.cloudflare.com/learning), für die der API-Server verantwortlich ist.

Was ist API-Integration?

API-Integration ist die Kombination von zwei oder mehr Anwendungen mithilfe von APIs. Durch die API-Integration kann eine Anwendung von den Fähigkeiten einer anderen Anwendung profitieren, so wie die Verbindung eines Vertriebsteams und eines Marketingteams in einem Büro es diesen beiden Teams ermöglicht, zusammenzuarbeiten und von der Arbeit des jeweils anderen zu profitieren. API-Integrationen werden auch häufig für die Synchronisierung von Daten zwischen zwei Anwendungen oder Datenbanken verwendet.

Was ist eine Web-API?

Alles, was mit Computercode zu tun hat, kann eine API haben, von Betriebssystemen bis hin zu Softwarebibliotheken. Eine Web-API ist speziell für die Verwendung durch Webanwendungen gedacht, auf die über das Internet zugegriffen wird.

Web-APIs sind aus dem modernen Internet nicht mehr wegzudenken. Fast alle nutzerorientierten Anwendungen funktionieren nur mit Hilfe von APIs (nicht nur Jennifers Website!). Ganze Softwareentwicklungsphilosophien beruhen auf der Verwendung von APIs – eine dieser Philosophien ist JAMstack, wobei JAM für JavaScript, APIs, Markup steht. Ein weiteres Beispiel ist die Microservices-Architektur, bei der die verschiedenen Funktionen, aus denen eine Anwendung besteht, über APIs aufgerufen werden. Selbst Anwendungen, die ohne diese Ansätze entwickelt wurden, stützen sich in der Regel auf APIs.

Was sind SOAP-APIs und REST-APIs?

SOAP-APIs und REST-APIs beschreiben unterschiedliche Kategorien von APIs.

SOAP (Simple Object Access Protocol) ist eine Art von Protokoll. SOAP-APIs sind APIs, die nur das SOAP-Protokoll verwenden.

REST (Representational State Transfer) ist ein Architekturstil für Webdienste. Eine REST-API ist jede API, die auf der REST-Architektur basiert. Im Gegensatz zu SOAP-APIs funktionieren REST-APIs mit jedem Protokoll. Heute sind die meisten APIs REST-APIs.

Stellen APIs ein Sicherheitsrisiko dar?

Wenn Sie einer Person die Nutzung einer Anwendung gestatten, besteht das Risiko, dass diese Person die Anwendung missbraucht, genauso könnte ein API-Client den Dienst missbrauchen. Hinzu kommt, dass Web-API-Aufrufe über das Internet laufen und wie jede andere Datenübertragung über ein Netzwerk abgefangen, gefälscht oder verändert werden können.

API-Sicherheit ist der Schutz von APIs vor Angriffen und Missbrauch. Da APIs für das moderne Internet so wichtig sind, ist die API-Sicherheit eine zentrale Komponente der Sicherheit von Webanwendungen. Zu den wichtigsten Maßnahmen der API-Sicherheit gehören:

  • Durchsatzbegrenzung: Kunden, die zu viele API-Anfragen stellen, können die API für andere Kunden verlangsamen oder zum Absturz bringen. Durchsatzbegrenzung legt fest, wie viele API-Anfragen von einem bestimmten API-Endpunkt innerhalb eines bestimmten Zeitraums gestellt werden können.
  • DDoS-Schutz: Ähnlich wie die Durchsatzbegrenzung hält der DDoS-Schutz (Distributed-Denial-of-Service) DDoS-Angriffe an, die darauf abzielen, eine API mit einer großen Anzahl von gleichzeitig gesendeten Anfragen zu erschöpfen oder zu überwältigen.
  • Authentifizierung: API-Endpunkte und -Clients müssen unbedingt authentifiziert werden, um sicherzustellen, dass API-Anfragen von legitimen Quellen und nicht von Angreifern stammen. Mutual TLS (mTLS) ist eine der effektivsten Formen der API-Authentifizierung.
  • Schemaüberprüfung: Wenn eine API-Anfrage nicht mit dem Schema der API übereinstimmt, kann die API auf unerwartete Weise reagieren, beispielsweise indem sie vertrauliche Daten preisgibt. Die Schemaüberprüfung ermöglicht es einer API, solche Anfragen zurückzuweisen.

Cloudflare API Shield enthält diese und andere Sicherheitsmerkmale zum Schutz vor API-Bedrohungen. Mehr Informationen zur API-Sicherheit finden Sie unter Was ist API-Sicherheit?