Eine kurze Einführung in APIs

In diesem Artikel geht es um APIs. Diese Abkürzung steht für Application Programming Interface. Es handelt sich um eine Programmierschnittstelle, die es Software erlaubt, miteinander zu kommunizieren und Daten auszutauschen. Es gibt dafür zahlreiche Anwendungsfälle. Man denke beispielsweise an den Zugriff auf Hardware oder die Kommunikation zwischen Programmen bzw. Computern. Wenn man im Internet eine Bestellung in einem Online-Shop vornimmt, findet über eine API ein Austausch von Daten mit einem Zahlungsdienstleister statt.

Werfen wir den Blick auf Software, genauer gesagt auf eine App, die auf einem Smartphone installiert sein könnte. Die Art und Weise der Implementierung einer bestimmten Funktion ist für den Anwender verborgen. Denn für ihn ist nicht von Interesse, wie die interne Technik funktioniert. Er muss sie nur bedienen können. Dabei nutzt er ein Interface. Er greift über eine grafische Benutzeroberfläche (Graphical User Interface, kurz: GUI) auf Steuerelemente zu. Dies könnte ein schlichter Button sein. Durch einen Klick auf dieses Element könnte z.B. Musik abgespielt werden.

Durch die API wird die Verwendung von Software einfacher. Denn was im Hintergrund passiert, sobald der Button angeklickt wurde, ist für den Nutzer nicht von Interesse. Der Button abstrahiert die dahinter liegende Implementierung. Und auch der Programmierer muss sich über die Funktion „Musik abspielen“ keine Gedanken machen. Er kann sie einfach zu seine App hinzufügen. Die APIs wiederum werden von den jeweiligen Framework-Anbietern (z.B. Apple, Google oder Microsoft) zur Verfügung gestellt. Dies ermöglicht Programmierern – darauf aufbauend – Apps zu entwickeln. APIs sind in der Softwareentwicklung äußerst sinnvoll, da sie es Entwicklern ermöglichen, auf bereits vorhandene, gut getestete Funktionen zurückzugreifen, anstatt das Rad jedes Mal neu erfinden zu müssen. Dies spart Zeit und Ressourcen und ermöglicht es, sich auf die Entwicklung neuer Features zu konzentrieren.

Aber nicht nur in der Entwicklung von Smartphone- oder Desktop-Apps spielen APIs eine Rolle. Wenn von APIs die Rede ist, sind häufig Web-APIs gemeint, die eine sehr große Rolle spielen. Damit meint man APIs zum Datenaustausch über das Internet. So greift eine Wetter-App auf die Daten eines Wetterdienstes zu. Oder man denke an die vielen Social-Media-Dienste. Deren Apps greifen über das Web auf die jeweiligen Server zu, sei es um sich anzumelden, sei es, um Nachrichten abzurufen. Weitere Beispiele sind Chatbots, Buchungssysteme oder die bereits erwähnten Bezahldienste. Und die Anbieter von großen Sprachmodellen (Large Language Models, kurz: LLM) stellen ebenfalls APIs bereit, die es entwicklern ermöglichen, Applikationen mit KI-Integration zu erstellen.

Sprachmodelle können aber auch lokal installiert und verwendet werden. Auch in diesem Fall existieren APIs, die den Datenaustausch über das lokale Netzwerk oder auch nur auf einem Gerät ermöglichen. So läuft beispielsweise Apples KI-Modell lokal auf dem iPhone. Über ein von Apple bereitgestelltes Framework können Entwickler in ihren Apps über eine API auf das lokale Sprachmodell zugreifen.

Fassen wir also zusammen: APIs ermöglichen den Austausch von Daten. Applikationen können darüber miteinander kommunizieren. Darüber hinaus ist es Entwicklern möglich, Apps zu erstellen bzw. auf externe Funktionen zuzugreifen. Eine besondere Bedeutung haben Web-APIs. Dadurch wird es möglich auf die Dienste von Servern zuzugreifen. Derartige Schnittstellen werden beispielsweise von Meta, Google, Amazon, Microsoft, etc. bereitgestellt.

Damit dies reibungslos funktioniert, bedarf es Standards. Im Laufe der Zeit haben sich verschiedene API-Typen etabliert, z.B. REST oder SOAP:

REST (Representational State Transfer) ist ein Architekturstil für die Gestaltung von Netzwerkdiensten. Es nutzt HTTP-Protokolle, um einfache und flexible Schnittstellen bereitzustellen. RESTful APIs arbeiten mit Ressourcen, die durch URLs identifiziert werden, und verwenden standardisierte HTTP-Methoden wie GET, POST, PUT und DELETE. Diese APIs sind leichtgewichtig, skalierbar und häufig in Webanwendungen anzutreffen.

SOAP (Simple Object Access Protocol) ist ein Protokoll für den Austausch strukturierter Informationen in einem dezentralisierten Umfeld. Es basiert auf XML und ermöglicht eine strenge, standardisierte Kommunikation. SOAP bietet umfangreiche Funktionalitäten wie Sicherheit und Transaktionen, ist jedoch komplexer und ressourcenintensiver als REST. Es wird häufig in Enterprise-Umgebungen eingesetzt, in denen Zuverlässigkeit und Sicherheit höchste Priorität haben.

Es gibt noch weitere API-Typen, auf die ich in diesem Artikel aber nicht eingehen werde.

Fazit

APIs sind das Rückgrat der modernen Softwareentwicklung und ermöglichen effektive Kommunikation zwischen verschiedenen Anwendungen. Sie vereinfachen den Zugriff auf komplexe Funktionen und machen es Entwicklern leichter, leistungsfähige Apps zu erstellen. Besonders im Bereich der Web-APIs wird deutlich, wie sie alltägliche Anwendungen wie Wetter-Apps oder Bezahldienste unterstützen. Die Einhaltung von Standards wie REST und SOAP gewährleistet, dass diese Schnittstellen reibungslos funktionieren.