Was ist eine API?

Application Programming Interface – Kurz API

Was ist eine API und wozu muss ich das wissen?

API (Application Programming Interface) zu Deutsch Anwendungsprogrammierschnittstelle umfasst akademisch formuliert Technologien, um in der Softwareentwicklung Funktionen zu nutzen, die von einem anderen System bereitgestellt werden.

Von Programmier-Schnittstellen und API-Steckdosen

Jetzt bleibt noch die spannende Frage: Was ist jetzt mit Interface bzw. Schnittstelle eigentlich gemeint? Schnitzt da jemand romantische Zeilen in mein Rechnergehäuse? Wohl kaum. Als kleine Eselsbrücke können Sie sich eine Schnittstelle abstrakt als Schnittmenge im Sinne einer Übereinkunft vorstellen. Der eine macht ein Angebot, der andere willigt (hoffentlich) ein. Konkret finden Sie das Konzept in jeder Berliner Wohnung – zumindest in einem legal vermieteten Objekt: Irgendwo sollte sich dort eine Steckdose befinden und diese können Sie sich als Schnittstelle oder eben eine API vorstellen. Zwischen Ihnen und der Wohnung gibt es quasi die Übereinkunft, dass irgendwo 230 Volt aus einem fest definierten Bestandteil der Wohnung, nämlich unserer Steckdose, rauskommen. Bei einer API ist das ähnlich: Ein Softwarehersteller sagt ihnen mit welchen Code-Zeilen (Steckdose) Sie seine Funktionen nutzen können (Strom), damit Ihre Anwendung (z.B. Ihr Wasserkocher) läuft.

Wozu der Aufwand mit dieser Software-Steckdose?

API sind also prinzipiell die Steckdosen der Softwareentwicklung – schon klar. Als solche bringen Sie auch ähnlich Vorteile, zumindest, wenn Sie professionell entwickelt worden sind, andernfalls bleibt Ihre Berliner Bude dunkel. Zum einen kann es dem Stromanbieter oder Architekten egal sein welches Stromgerät Sie verwenden. Ob Wasserkocher, Fernseher oder Tischlampe: Einfach Stecker rein und los. Zum anderen brauchen Sie für Ihren neuen Wasserkocher nicht gleich umziehen, denn Sie können sicher sein, dass Ihr neues Gerät in die Steckdose passt. Außerdem brauchen Sie nicht Ihre eigene Windkraftanlage vor der eigenen Haustür aufstellen – eigentlich sehr praktisch. Heißt in der Softwareentwicklung: Solange die Schnittstelle nicht geändert wird, kann der Hersteller fröhlich herumprogrammieren, ohne dass Sie Ihre Software-Lösung anpassen müssen und unnötige Kosten entstehen. Und da alle Funktionen aus der Steckdose, äh API kommen, brauchen Sie auch keine eigenen Server, Datenbanken und Software-Komponenten bereitzustellen.

Wie funktioniert eine API konkret?

Die Metapher mit der Steckdose ist ganz putzig, hilft in der Softwareentwicklung praktisch aber eher wenig. Deshalb mal ein kleines Beispiel anhand einer fiktiven Microsoft-API:

  • Ein Softwareentwickler will von Microsoft wissen: Welcher Nutzer verbirgt sich hinter der ID 007
  • Microsoft stellt eine Software-Bibliothek zur Verfügung mit einer vorgefertigten Funktion „GetUser(userId)“ – ähnlich wie in Mathe eine Funktion f(x)
  • Der Entwickler schreibt in seinem Code nun GetUser („007“) ein
  • Anschließend wird aus seinem Code irgendwie ein lauffähiges Programm (oftmals spricht man auch vom Kompilieren), dass z.B. per Doppelklick auf ein Icon starten – das ist im Detail aber wieder eine andere Geschichte
  • Wenn das Programm loslegt, wird nun Microsofts Code, der sich hinter GetUser versteckt, ausgeführt und es erscheint hoffentlich „James Bond“ am Bildschirm

Wie sind die aus Redmond nur an diese Info gekommen? Mysteriös! Das kann Ihnen als Nutzer aber egal sein. Egal aus welcher Quelle und mit welcher Programmiersprache eigentlich im Hintergrund gearbeitet wurde: Sie bekommen Ihren James Bond. 

Sind alle APIs gleich? Die verschiedenen Arten von APIs

Man kann vier Typen unterscheiden:

  • Funktionsorientierte Programmierschnittstellen
  • Dateiorientierte Programmierschnittstellen
  • Objektorientierte Programmierschnittstellen
  • Protokollorientierte Programmierschnittstellen

Am dominantesten sind die objektorientierten und protokollorientierten APIs.  

Objektorientierte APIs werden häufig in von Form von sogenannten SDKs (Software Development Kits) verabreicht. Das sind in der Regel Bibliotheken, die sich ein Softwareentwickler runterladen kann, um mundgerecht für seine Programmiersprache (z.B. C#) fertige Funktionen zu erhalten – ja, Softwareentwickler sind faul. 

Protokollorientierte Programmierschnittstellen nutzen für den Austausch von Informationen zwischen zwei Software-Lösungen standardisierte, oftmals verteilte Protokolle. Das kennen Sie nur zu gut von Ihrem Browser. Der nutzt nämlich das sogenannten Hypertext Transfer Protokoll – kurz HTTP – um von anderen Computern Informationen in Text-Form zu schnorren. Dieses Prinzip kann man sich auch in der Softwareentwicklung zu Nutze machen und z.B. in Berlin über einen Web-Server in Bayern Informationen zum nächsten Oktoberfest bekommen. Dann allerdings nicht als hübsche Webseite mit Weißwurst und Bretzel, sondern halt über http in Form von nacktem Text. In der Praxis werden so häufig APIs von Cloud-Plattformen, wie z.B. Microsoft Azure, genutzt. Das hat einige Vorteile gegenüber den objektorientierten APIs:

  • Unabhängigkeit vom Betriebssystem
  • Unabhängigkeit von der Programmiersprache
  • Unabhängigkeit von lokaler Infrastruktur (z.B. Datenbanken und Laufzeitumgebungen)

Neues Geschäftsmodell? Alles nur von der API geklaut?

Sie haben jetzt also ein grobes Bild von Application Programming Interfaces (APIs). Es gibt für Sie ab jetzt zwei Möglichkeiten: Entweder Sie brauchen dringend eine Funktion zum Mitnehmen, weil Sie nicht die Muße haben, alles als Software selbst zu entwickeln. Die andere Möglichkeit: Sie drehen den Spieß einfach um, spielen sinnbildlich Windkraftanlagen-Betreiber und verkaufen Ihren digitalen Ökostrom. Hinter jedem digitalen Prozess, egal ob einfache Online-Bestellung oder Abrechnungen für die Krankenkassen oder was auch immer: Überall steckt Software und die muss ja schließlich irgendwo herkommen – z.B. aus Ihrer Programmierschnittstelle, Ihrer API.

Sie haben Fragen oder Anregungen?

Kontaktieren Sie uns noch heute: