API steht für “application programming interface” und bezeichnet grundlegend eine Schnittstelle für Anwendungsprogramme. Eine API stellt eine Menge von Kommandos, Funktionen und Protokollen zur Verfügung, die das Programmieren von Software erleichtern. Diese vordefinierten Funktionen vereinfachen dem Programmierer die Interaktion mit dem Betriebssystem, denn die Hardware (Monitor, Daten auf der Festplatte usw.) muss nicht direkt angesprochen werden. Im Zusammenhang mit dem Internet stehen Web-APIs im Vordergrund. Auch sie dienen als Schnittstelle, um die Nutzung vorhandener Funktionen von Dritten zu ermöglichen.
Das funktioniert bei Desktop-Software genauso wie bei mobilen Apps oder Webanwendungen. Auch ein einzelnes Programm kann so aufgebaut sein, dass verschiedene Module untereinander per Schnittstellen miteinander kommunizieren.
Wie ein User Interface das Kommunizieren zwischen Mensch und Maschine ermöglicht, so erlaubt die API das Kommunizieren zwischen verschiedenen Software-Applikationen. Daten können dank der Programmierschnittstelle hin und her transferiert werden – und zwar in geordneten Bahnen. Das funktioniert selbst dann, wenn die Applikationen in verschiedenen Programmiersprachen verfasst wurden.
Heutzutage werden APIs von verschiedenen Software-Herstellern bereitgestellt, um es Programmierern leichter zu machen, auf Software-Komponenten zuzugreifen. SAP, Amazon und Google beispielsweise bieten APIs für verschiedene Anwendungsbereiche. Über diese Schnittstellen können Developer unterschiedliche Aufgaben ausführen:
Eine Anweisung des Programmierers an eine Software weiterleiten und dessen Reaktion empfangen
Content in Webdienste einfügen
App-Codes wiederverwenden dank Vernetzung von Programmen
Zugriff durch andere Programmierer kontrollieren
Im täglichen Gebrauch kommen APIs beispielsweise bei Webdiensten zum Einsatz. Wer einen Flug bucht, der kann eine entsprechende Suchmaschine beauftragen, alle Flüge und Flugpreise zu einem bestimmten Ziel und Datum zu finden. Sobald man auf „Suchen“ klickt, fängt die Website an, mit den APIs der einzelnen Fluglinien zu kommunizieren, um die Preise zum Ziel abzufragen. Dies geschieht innerhalb weniger Sekunden, und der Kunde hat schnell eine Übersicht von buchbaren Flügen. Aber wie genau funktioniert das?
Obwohl sie dem Endnutzer zugutekommen, dienen APIs in erster Linie Programmierern. Das Application Programming Interface wird in der Regel von den Entwicklern einer Software bereitgestellt, damit die Programmierer anderer Anwendungen die Schnittstelle benutzen können. Die Programmierschnittstelle legt fest, wie Informationen und Daten zwischen Modulen entgegengenommen und zurückgesendet werden. Google etwa veröffentlicht die API, um es anderen Programmierern zu ermöglichen, ihre eigenen Applikationen an die Google-Dienste andocken zu lassen. Dafür verwendet man dann einen eigenen Standard, an den sich die externe Software halten muss.
Sehr beliebt für die Kommunikation zwischen Anwendungen – besonders innerhalb des Webs – ist das Protokoll REST. Eine REST-API verwendet die Befehle, die auch bei HTTP eingesetzt werden. Die Anweisungen sind nicht komplex und machen den Austausch von Informationen daher sehr einfach. Zusätzlich fällt es Programmierern durch das simple Protokoll leicht, die Anbindung an die API herzustellen.
Wichtig, um die Programmierschnittstelle bereitstellen zu können, ist also die Standardisierung – egal welches Protokoll man für den Austausch verwendet. Zusätzlich sollte man anderen Programmierern auch den richtigen Umgang mit der Schnittstelle näherbringen. Deshalb wird eine API oft mit ausführlichen Dokumentationen zu Syntax und Funktion bereitgestellt.
Es gibt grundsätzlich vier verschiedene Klassen von Programmierschnittstellen:
Funktionsorientierte APIs
Dateiorientierte APIs
Protokollorientierte APIs
Objektorientierte APIs
Bei der Wahl der Klasse kommt es auf den Anwendungsbereich an. Funktionsorientierte Programmierschnittstellen sind relativ komplexe Schnittstellen. Sie ermöglichen es Developern beispielsweise, auf Hardware-Komponenten zuzugreifen. Dabei werden immer nur Funktionen aufgerufen. Dateiorientierte APIs ermöglichen die Verbindung auf Dateiebene. Daten können somit abgefragt und geschrieben werden. Die protokollorientierte Schnittstelle dient der standardisierten Kommunikation zwischen Programmen, ist dabei aber unabhängig von Betriebssystemen oder Hardware. Die objektorientierten APIs sind flexibel einsetzbar.
Bei der Unterscheidung von APIs lassen sich außerdem die internen Schnittstellen von den öffentlichen abgrenzen. Private Schnittstellen stehen nur innerhalb eines Betriebs zur Verfügung. Sie kommen oft zum Einsatz, um firmeneigene Funktionalitäten zu verbinden, sodass Mitarbeiter oder Kunden über private Netzwerke Zugriff erlangen. Öffentliche Schnittstellen stehen jedem zur Verfügung und können oft bequem von Software-Developern eingesetzt werden. Google, Amazon, eBay, Facebook, Twitter und PayPal sind gute Beispiele für öffentliche APIs. Viele Hersteller (z. B. Google) laden außerdem Developer aktiv ein, an ihrer API-Entwicklung teilzunehmen.
APIs bringen einige Vorteile mit sich, und zwar für unterschiedliche Gruppen: Nutzer profitieren ebenso von den Programmierschnittstellen wie interne oder externe Entwickler.
Entwickler, die ihre Programme mit guten Programmierschnittstellen ausstatten, können mit einer besseren Verbreitung rechnen. Da es anderen Programmierern so einfacher fällt, mit der Software zu interagieren, werden Anwendungen mit guter API bevorzugt. Externe Entwickler können den Funktionsumfang ihrer eigenen Software durch die Anbindung an andere Applikationen stark erweitern. Am Ende profitieren vor allem die Nutzer von der Verbindung über die Schnittstelle: Sie können auf diese Weise problemlos verschiedenste Programme miteinander kombinieren und so mehr Komfort genießen.
Google Maps ist ein sehr bekanntes Beispiel für die Integration von APIs. Die berühmten Online-Navigationskarten wurden im Februar 2005 vorgestellt und sind seitdem für viele Endnutzer kaum noch wegzudenken – ob von Computern oder als App auf Smartphones.
Auf der Google Maps Platform können Developer auf SDKs und APIs zugreifen, die sich in ihre eigenen Apps, Programme und Webseiten integrieren lassen. Damit lassen sich die Funktionen von Google Maps schnell und einfach in andere Anwendungen einbinden. Mit der Maps JavaScript API beispielsweise können Besitzer von Webseiten bequem interaktive Karten hinzufügen. Das ist besonders attraktiv für Shops oder Restaurants, deren Geschäftserfolg oft davon abhängt, dass Kunden ihre Lokalitäten finden und besuchen.