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.
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.
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.
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:
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.
Man kann vier Typen unterscheiden:
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 sogenannte 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:
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.