Zum Inhalt springen

Was ist eine API? Einfach erklärt!

  • Daten

Ein Application Programming Interface, kurz API, bezeichnet ein Konzept, welches die Kommunikation von Software-Programmen untereinander ermöglicht und vereinfacht. Es definiert die Art und das Format, wie Daten von einer Anwendung abgezogen oder an ein Programm gesendet werden können.

Das Bild zeigt die Abkürzung von API.
Abkürzung für Application Programming Interface

Wofür werden Application Programming Interfaces genutzt?

Eine API ermöglicht die Kommunikation zwischen verschiedenen Programmen und Anwendungen, indem Informationen gesendet, angefordert, gelöscht oder geändert werden können.

Dieser Aufbau ermöglicht es komplexe Software-Anwendungen zu modularisieren, indem einzelne Programmteile in sich geschlossen sind und dann über eine Programmierschnittstelle miteinander kommunizieren. Dadurch sind die einzelnen Funktionalitäten des Codes klar voneinander getrennt und können einfach ausgetauscht oder geändert werden.

Auf diesem Prinzip basieren beispielsweise die Docker Container. Diese Container können auf verschiedenen Rechnern in einem Cluster gestartet werden und führen einzelne Codeabschnitte aus. Damit daraus eine funktionierende Anwendung wird, bekommen sie Daten von anderen Containern und schicken ihre eigenen Ergebnisse über APIs an nachgeschaltete Container.

Welche Anwendungen nutzen APIs?

Programmierschnittstellen begegnen uns bereits an vielen Stellen. Beispielsweise ist der Aufruf einer Website nichts anderes als die Abfrage einer Application Programming Interface auf dem Webserver des Anbieters. Deshalb überrascht es auch nicht, dass viele Websiten APIs anbieten mit denen man auf deren Daten zugreifen kann. Eine solche Schnittstelle zum Datenabzug bieten beispielsweise:

  • Google Maps
  • Twitter
  • YouTube
  • Facebook
  • Paypal

Durch das Angebot der APIs schützen sich die Websiten auch vor dem sogenannten Web Scraping. Für viele Anwender ist es interessant Informationen von einer Website automatisiert auszulesen. Wenn der Anbieter dafür keine Schnittstelle bereitstellt, wird nicht selten darauf zurückgegriffen die Website zu scrapen. Dazu ruft ein Bot die Seite auf und liest sie innerhalb von wenigen Millisekunden aus. Das kann immense Belastungen für die Website und damit Performanceverlust zur Folge haben.

Im E-Commerce Umfeld wird beispielsweise eine Schnittstelle zu Paypal genutzt, um dem Kunden diese Bezahlmöglichkeit anbieten zu können. Dafür gibt es eine fest definierte Struktur wie der Shop Daten an Paypal senden kann. Dadurch kann diese Bezahloption schnell und unkompliziert in verschiedene E-Commerce Shops integriert werden.

Online Wetterauskünfte sind auch auf die Verwendung von Programmierschnittstellen angewiesen, um ihren Service anbieten zu können. Die Websites, wie beispielsweise wetter.com, bieten die Möglichkeit eine Wettervorhersage für nahezu jeden Ort auf der Welt abzurufen. Die Bereitstellung der Informationen ist nicht ganz einfach, da dazu verschiedene regionale Wetterdienste befragt und deren Daten zentral zusammengeführt werden müssen.

Um diesen Prozess standardisieren zu können, wird auf Application Programming Interfaces zurückgegriffen. Das ermöglicht es den Websites die regionalen Daten automatisiert und in einer vordefinierten Datenstruktur zu erhalten.

Welche Arten von Programmierschnittstellen gibt es?

Grundsätzlich gibt es unterschiedliche Möglichkeiten Programmierschnittstellen in Gruppen aufzuteilen. Am Häufigsten werden APIs in ihrer Zugänglichkeit unterschieden, also wem Zugriff auf die Daten gewährt wird. Man unterscheidet dabei die folgenden drei Arten:

  1. Internal API: Dabei handelt es sich um Programmierschnittstellen, die ausschließlich zum Gebrauch innerhalb eines Unternehmens gedacht sind. Sie sind für externe Benutzer nicht einsehbar und schon gar nicht abrufbar. Beispielsweise können Daten des internen Customer Relationship Management (kurz: CRM) Tools über eine API für den Vertrieb abrufbar sein. Diese heiklen Informationen dürfen unter keinen Umständen an Außenstehende gelangen.
  2. Partner / Customer API: Diese Programmierschnittstellen halten Daten bereit, welche für einen ausgewählten Personenkreis zugänglich sein sollen. Dabei spielt die Authentifizierung eine wichtige Rolle, da sie sicherstellt, dass ein Benutzer auch wirklich die Berechtigung besitzt die Informationen einzusehen. Manche Onlineshops bieten beispielsweise die Möglichkeit, die kundeneigenen Bestellungen oder Lieferinformationen per API abzurufen, damit der Kunde sie in seiner eigenen Umgebung nutzen kann. In dieser Anwendungen muss sichergestellt werden, dass jeder Kunde ausschließlich die Bestellungen sieht, die seiner Kundennummer zugeordnet sind.
  3. Public / Open Source API: Application Programming Interfaces von dieser Art stehen der Öffentlichkeit über das Internet zur Verfügung. Die Daten sind von allgemeinem Interesse, weshalb der Betreiber einen öffentlichen Zugang zur Verfügung stellt. Je nach Nutzung können jedoch Gebühren für den Datenabzug verlangt werden, damit die bereitgestellte Infrastruktur unterhalten werden kann. Zu den öffentlichen APIs zählt beispielsweise die Schnittstelle von Google Maps.

Neben der Unterscheidung nach Zugänglichkeit verwenden manche Quellen auch die Orientierung der Schnittstelle, um verschiedene Gruppen zu bilden:

  1. Funktionsorientiert: Schnittstellen aus dieser Gruppe ermöglichen es einem Programm direkten Zugriff auf die Hardware eines Geräts zu nehmen und dort spezielle Funktionen freizuschalten. Beispielsweise können über die API des Betriebssystems Anfragen für Komponenten der Hardware abgegeben werden.
  2. Dateiorientiert: Hiermit sind Anfragen möglich, welche auf die Festplatten des Rechners zugreifen und es ermöglichen, dass konkrete Dateien oder Verzeichnisse ausgegeben werden. Die Zugriffsberechtigungen werden über das Betriebssystem verwaltet.
  3. Objektorientiert: In vielen Programmiersprachen, wie auch in Python, werden komplexe Anwendungen in verschiedene Klassen aufgeteilt. Die objektorientierten Schnittstellen ermöglichen die Kommunikationen zwischen diesen Klassen, auch Objekte genannt, und sind dabei deutlich flexibler als funktionsorientierte Schnittstellen.
  4. Protokollorientiert: Die protokollorientierten Application Programming Interfaces sind komplett unabhängig von Betriebssystemen und Hardware, da sie mithilfe von Protokollen und Bibliotheken funktionieren.

Welche Vorteile bieten APIs?

Es gibt unzählige Vorteile, die sich mit der Verwendung von Programmierschnittstellen realisieren lassen. Ein Großteil davon lässt sich damit zusammenfassen, dass Anwendungen mithilfe der Schnittstellen nicht mehr so fehleranfällig sind, deutlich einfacher gewartet werden können und dadurch eine kostengünstigere Infrastruktur benötigen. Wie es zu diesen Vorteilen kommt, führen wir in den folgenden Abschnitten aus.

Application Programming Interfaces ermöglichen die Modularisierung von Software-Anwendungen, wie es beispielsweise Docker nutzt. Dazu wird das komplette in kleinere Teilaufgaben umgeschrieben, sodass dieser Teil autonom laufen kann. Die Kommunikation mit vorgelagerten und nachgeschaltenen Prozessschritten funktioniert ausschließlich über Application Programming Interfaces.

Das bietet zum einen den Vorteil, dass rechenintensiv Prozessschritte auf stärkere Rechner geschalten werden können und andere auf günstigeren Komponenten im Cluster. Zusätzlich ist die Gesamtanwendung sehr fehlerunanfällig. Solange alle Einzelkomponenten die richtigen Eingaben über eine Schnittstelle bekommen und die richtigen Ausgaben über eine Schnittstelle ausgeben, funktioniert das Gesamtprogramm ohne Probleme.

Diese Architektur ermöglicht es die Unteranwendungen einfacher zu warten, sie zu erneuern oder sogar gegen komplett neue Systeme auszutauschen.

Wie funktioniert eine REST-API?

Die Inhalte, welche wir im Internet zu sehen bekommen, basieren nahezu ausschließlich auf API Abfragen. In den frühen Anfängen des Internets wurde dazu noch das Simple Object Access Protocol, kurz SOAP, eingesetzt, welches XML Dokumente versendete. Mit Beginn der 2000er Jahren setzten sich dann jedoch die REST Schnittstellen (Representational State Transfer) als Grundlage für Webservices durch.

Das Bild zeigt die Funktionsweise einer API.
Funktionsweise REST-API

Die Problempunkte bei der Verwendung von SOAP waren, dass bei der Serverkommunikation strenge Vorgaben beachtet werden mussten und der Umgang mit XML auch eher umständlich ist. Bei REST kommen hingegen die deutlich übersichtlicheren JSON Dateien zum Einsatz. Darüber hinaus bietet es eine flexible Formatierung und ist sehr performant bei der Datenübertragung, was im heutigen Web eine große Rolle spielt.

Das solltest Du mitnehmen

  • Ein Application Programming Interface, kurz API, bezeichnet ein Konzept, welches die Kommunikation von Software-Programmen untereinander ermöglicht.
  • Sie kommen beispielsweise beim Aufbau von Websites zum Einsatz.
  • Die Nutzung solcher Schnittstellen ist vorteilhaft, da man dadurch Programme modularisieren kann.

Andere Beiträge zum Thema API

close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Schlagwörter:
Cookie Consent mit Real Cookie Banner