Was ist eine API?

In der heutigen Zeit hört man immer wieder den Begriff API. Besonders als Entwickler sollte man wissen, was man überhaupt darunter versteht, welche Möglichkeiten APIs bieten und wie man diese für sich und seine eigenen Anwendungen nutzen kann.

Aus diesem Grund möchten wir dir mit diesem Artikel eine umfassende Einführung in das Thema bieten. Der komplette Inhalt dieses Artikels wurde auch in Videoform aufbereitet:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Inhaltsverzeichnis

Was ist eine API? (Begriffserklärung)

Bevor wir ausführlich in die Thematik einsteigen, möchte ich dir zunächst einmal den Begriff „API“ erklären. Beim Begriff „API“ handelt es sich um eine Abkürzung, welche für „Application Programming Interface“ steht. Ins Deutsche würde man dies mit Anwendungs-Programmierschnittstelle übersetzen.

Doch was steckt nun hinter diesem Begriff? Eine API wird immer von einem bereits existierenden Softwaresystem bereitgestellt, sodass auch andere fremde Programme/Anwendungen/Webseiten, bestimmte Teile dieses bereits existierenden Softwaresystems für sich nutzen können.

Das heißt, ein Softwaresystem kann seine eigenen Dienste anderen Softwaresystemen zur Verfügung stellen. Dadurch kann eine bereits programmierte und getestete Funktionalität von zahlreichen weiteren Softwaresystemen verwendet werden.

Das Ganze klingt jetzt noch etwas abstrakt, weshalb wir uns gleich zwei Beispiele für APIs ansehen werden. Zuvor möchte ich aber noch kurz erläutern, was eine Schnittstelle eigentlich ist. Dieser Begriff wird nämlich sehr oft verwendet, und viele Menschen wissen oftmals überhaupt nicht, was damit gemeint ist.

Eine Schnittstelle ist ein Teil eines Systems, welcher der Kommunikation dient. Eine Schnittstelle ermöglicht es nämlich, zwei sich gegenseitig unbekannter Systeme miteinander kommunizieren zu lassen. Ein beliebiges Softwaresystem stellt also über eine sogenannte API eine Schnittstelle bereit, sodass andere Softwaresysteme über diese Schnittstelle mit dem System kommunizieren können. Und das, obwohl sich die über die API verbundenen Systeme überhaupt nicht kennen und unabhängig voneinander entwickelt werden.

Beispiel 1: Google Login-System

Damit das Thema nicht so abstrakt bleibt, werden wir uns dieses nun an zwei kleinen Beispielen veranschaulichen.

Nehmen wir einmal an, wir möchten eine eigene Anwendung bzw. eine eigene Webseite programmieren. In diese Anwendung bzw. Webseite soll man sich später über ein Login-System einloggen können. Es soll also ein System zur Verfügung stehen, über welches man sich automatisiert einen Account erstellen und immer wieder einloggen kann.

Diese Art von Login-System wird in der Realität sehr oft benötigt. Du hast bestimmt schon einmal eine Webseite gesehen, auf der ein solches Login-System implementiert ist. Inzwischen sieht man sogar sehr häufig, dass man sich auch über seinen Google-Account auf einer Webseite anmelden kann.

Google selbst stellt also einen Dienst zur Verfügung, über welchen man so ein Login-System implementieren kann. Und dieser Dienst wird über nichts anderes als eine API zur Verfügung gestellt. Dadurch haben wir den Vorteil, dass wir das Login-System nicht selbst implementieren müssen und Google hat den Vorteil, dass sie durch die Anmeldung auf ihren Systemen mehr Daten sammeln können.

Möchten wir diesen Dienst nun also in unserer Anwendung verwenden, so müssen wir über die API auf den Dienst zugreifen. Wir können also auf den von Google geschriebenen und getesteten Code zugreifen, ohne dass wir diesen im Detail kennen müssen.

Über die API werden uns also gewisse Funktionalitäten zur Verfügung gestellt, die wir als außenstehendes System aufrufen und nutzen können.
 Klingt im ersten Moment recht kompliziert, ist aber eigentlich ganz einfach: Stelle dir die Google API einfach als eine Art Sammlung von Funktionen vor, über die du die unterschiedlichsten Google-Dienste auch auf deiner Webseite einbinden und verwenden kannst.

Beispiel 2: Facebook Kommentare auf eigenem Blog

Ein weiteres Beispiel wäre die API von Facebook, über welche du Facebook-Kommentare unter den Blog-Artikeln deiner Webseite zulassen kannst. Auch hierbei handelt es sich wieder um einen Dienst, welcher seitens Facebook zur Verfügung gestellt wird. Um diesen Dienst nutzen zu können, müssen wir lediglich über die API von Facebook darauf zugreifen.

Auch hier müssen wir wieder keine Kenntnis über die Implementierungsdetails haben, da sich Facebook bereits darum gekümmert hat und im Hintergrund alles regelt. Wir müssen lediglich über die von der API zur Verfügung gestellten Funktionen darauf zugreifen.

Das waren jetzt mal zwei kleine Beispiele, die den Nutzen von APIs demonstrieren sollten.

Wieso sind APIs so wertvoll?

Da du nun den Begriff „API“ zum einen in der Theorie und zum anderen anhand von zwei Beispielen erklärt bekommen hast, möchte ich dir in diesem Abschnitt aufzeigen, wieso APIs so wertvoll sind.

  1. APIs ermöglichen es Entwicklern aus aller Welt, ihre eigenen Programmfeatures und Implementierungen mit anderen Programmen zu teilen. Solltest du also eine Funktionalität programmiert haben, die du für sehr gut erachtest und teilen möchtest, dann kannst du dies über eine API bewerkstelligen. Sollte diese Funktionalität dann an Bekanntheit gewinnen, so kann es gut sein, dass deine Implementierung von zahlreichen Menschen auf der ganzen Welt verwendet wird. Ein tolles Gefühl 🙂
  2. Ein weiterer sehr wichtiger Vorteil von APIs ist, dass bereits gelöste Probleme nicht immer wieder neu gelöst werden müssen. Solltest du beispielsweiße ein Login-System benötigen, dann musst du das Rad nicht komplett neu erfinden, sondern kannst über eine API auf bereits bestehende Lösungen (beispielsweiße das Login-System von Google) zurückgreifen.
  3. Auch die Kombination von unterschiedlichen APIs kann zu ganz neuen Anwendungen führen und deshalb sehr wertvoll sein. Ein Beispiel hierfür sind Vergleichswebseiten für Flüge. Auf so einer Vergleichswebseite kann man seinen gewünschten Reisezeitraum eingeben und dann sehr transparent die Preise von verschiedenen Fluggesellschaften miteinander vergleichen. Es ist neben dem Vergleich dank APIs sogar möglich, den Flug direkt über die Vergleichswebseite zu buchen. Eine Vergleichsseite nutzt so also gleichzeitig zahlreiche APIs unterschiedlicher Fluggesellschaften, um aktuelle Preise für bestimmte Flüge abzurufen und auch um Buchungen direkt abzuwickeln.


Einschränkungen von APIs

Gerade als Anbieter einer API ist es natürlich notwendig, über gewisse Einschränkungen die Kontrolle über die eigenen Funktionalitäten zu behalten. So kann man beispielsweiße verhindern, dass die öffentlich zur Verfügung gestellten Dienste für illegale Zwecke missbraucht werden.

Diese Kontrolle kann man über sogenannte API-Keys realisieren. Dadurch kann eine API nur verwendet werden, wenn man sich zuvor beim Anbieter registriert und dadurch einen API-Key erhalten hat. Über diesen Key kann der Betreiber dich jederzeit identifizieren und dir gegebenenfalls auch den Zugang auf die Funktionalitäten entziehen, indem der API-Key gesperrt wird. Bei der Google API ist es beispielsweiße notwendig, sich so einen Key anzufordern, wenn man auf die API zugreifen möchte.

Solltest du also sehr viele fremde Dienste in deiner Anwendung verwenden, welche nur auf den Funktionalitäten anderer APIs aufbauen, so solltest du dir auch über die Abhängigkeit im Klaren sein. Der API-Anbieter hat durch seine Machposition nämlich jederzeit die Möglichkeit, dir den Zugriff wieder zu entziehen. Eine weitere Möglichkeit wäre, dir ab einem gewissen Volumen an API aufrufen auch gewisse Kosten in Rechnung zu stellen.