Was ist eine API?

, ,
businessman 3075837 640

Die Abkürzung API ist englischen Ursprungs und steht für Application Programming Interface. API bezeichnet eine Programmierschnittstelle, deren Anbindung auf Source-Code-Ebene realisiert wird. Programmierschnittstellen kommen in einer Vielzahl unterschiedlicher Anwendungen zum Einsatz und werden im Bereich der Webentwicklung häufig in Form von Web-APIs eingesetzt.

Was genau ist eine Programmierschnittstelle?

Eine API wird in der Regel eingesetzt, um Daten zwischen einem zentralen Computer-Programm und einzelnen Anwendungsteilen einheitlich und standardkonform auszutauschen. Der Austausch der Informationen und Befehle wird einheitlich nach einer zuvor definierten Struktur und strikten Syntax vollzogen. Eine Programmierschnittstelle bietet Entwicklern die Möglichkeit, ein Computer-Programm zu modularisieren und dadurch sowohl Entwicklung als auch Verwaltung der Anwendung wesentlich zu vereinfachen. Die einzelnen Programmteile, die über eine API miteinander verbunden sind, stellen bestimmte Funktionalitäten bereit und sind von dem Rest der Anwendung klar getrennt.

Die gesamte Kommunikation zwischen den einzelnen Anwendungsmodulen wird ausschließlich über die genau spezifizierte Programmierschnittstelle vollzogen. Wenn Entwickler eine API bereitstellen, erfolgt das in vielen Fällen in Kombination mit einer detaillierten Dokumentation der genauen Syntax, der bereitgestellten Funktionen und Features und der möglichen Argumente. Moderne APIs kommen in einer Vielzahl unterschiedlicher Bereiche zum Einsatz. So kann beispielsweise über ein Application Programming Interface auf einzelne Hardwarekomponenten, eine bestimmte Datenbank, Betriebssystembefehle, Benutzeroberflächen und viele weitere Komponenten zugegriffen werden.

success 2917048 640

Das Application Programming Interface ist von einem User Interface (Benutzeroberfläche) zu unterscheiden. Während ein User Interface in erster Linie als Schnittstelle zwischen der Anwendung und dem Anwender fungiert, kann eine API als Äquivalent zur maschinenverständlichen und automatisierten Kommunikation betrachtet werden. Die Benutzerschnittstelle nimmt dabei die Daten von Anwendern entgegen, leitet diese an die richtige Anlaufstelle im Rahmen der Anwendung weiter und stellt die Ergebnisse dem Benutzer bereit.

Eine API hingegen hat keine Interaktion mit dem Benutzer, sondern ist in erster Linie für die Verarbeitung der von einem Anwendungsmodul entgegengenommenen Daten verantwortlich.

Welche API-Typen gibt es?

Application Programming Interfaces gibt es in unterschiedlichen Variationen, die jeweils auf die speziellen Anforderungen und Bedürfnisse des jeweiligen Einsatzszenarios angepasst sind. Moderne APIs lassen sich prinzipiell in vier verschiedene API-Klassen einteilen, und zwar:

– objektorientierte APIs

– dateiorientierte APIs

– protokollorientierte APIs

– funktionsorientierte APIs

Während dateiorientierte Programmierschnittstellen primär durch den Einsatz verschiedener Dateisystemaufrufe einzelne Dateien und Dateisysteme ansprechen, verwenden funktionsorientierte APIs in erster Linie Funktionen und deren Parameter zur Kommunikation. Objektorientierte APIs arbeiten in Kombination mit sogenannten „Schnittstellenanzeiger“ und bieten im Vergleich zu den rein funktionsorientierten Programmierschnittstellen eine höhere Flexibilität. Das wesentliche Charakteristikum von protokollorientierten Schnittstellen spiegelt sich in ihrer Unabhängigkeit von bestimmten Betriebssystemen und Hardwarekonfigurationen wider.

Mehr zum Thema:
Was ist Telnet? – Einblick in die Netzwerkprotokolle

Welche Vorteile bietet der Einsatz einer API?

Der konsequente Einsatz von APIs bringt eine Reihe unterschiedlicher Vorteile mit sich. Sehr umfangreiche und komplexe Software-Projekte lassen sich durch die Verwendung von Programmierschnittstellen modularisieren und besser strukturieren, sodass die Entwicklung und Wartung des Software-Produkts wesentlich vereinfacht wird. Einzelne Funktionalitäten und Features lassen sich als Programmmodule realisieren, was zu einer sauberen und übersichtlichen Gesamtstruktur führt. Darüber hinaus macht der Einsatz des modularen Programmcodes in Kombination mit den Programmierschnittstellen die Anwendung weniger Anfällig für Fehler und Bugs, die sich später nur mit großer Mühe beheben lassen. Werden einzelne Funktionen nicht korrekt ausgeführt, dann müssen lediglich die betroffenen Module näher inspiziert werden.

twitter 2170426 640

Ein weiterer wesentlicher Vorteil einer gut dokumentierten und sauber programmierten API gegenüber Apps ohne Programmierschnittstelle ist die Auslagerung von Entwicklungsarbeiten. So kann die Entwicklung bestimmter Komponenten mit relativ geringem Aufwand an eine externe Software-Schmiede oder einen Freelance-Entwickler outgesourced werden. Außerdem können externe Entwickler selbst Funktionalitäten für die Anwendung implementieren. Dies wirkt sich  positiv auf die Flexibilität und Attraktivität des Software-Projektes aus, was  klare Wettbewerbsvorteile mit sich bringt. Ein Pluspunkt, der für den Einsatz von APIs spricht, spiegelt sich in der Langzeitstabilität des Software-Produkts wider. Entwickler können den Programmcode anpassen, ohne dass Programmmodule betroffen sind. Funktionalitäten lassen sich dadurch relativ einfach implementieren bei einer gleichzeitigen Senkung der Kosten und des Arbeitsaufwandes.

Welche APIs sind besonders beliebt?

Programmierschnittstellen kommen heutzutage in vielen unterschiedlichen Bereichen moderner Software-Entwicklung zum Einsatz. Im World Wide Web sind beispielsweise viele öffentliche Web-APIs vorzufinden, mit denen sich Angebote bekannter Online-Services, wie beispielsweise Spotify oder YouTube, in eigene Anwendungen einbinden lassen. Beispielsweise sind APIs zu folgenden Web-Services verfügbar:

– DHL

– PayPal

– YouTube

– TikTok

– Twitter

– Spotify

– Google Maps

– Twitch

– Instagram

Im Bereich der Webentwicklung kommen Programmierschnittstellen oft bei Content-Management-Systemen und Web-Shops zum Einsatz. Dadurch lassen sich verschiedene Online-Börsen, Bewertungssysteme, Bezahldienste und Versanddienstleister sowie viele weitere Web-Services mit relativ wenig Aufwand in die eigene Plattform integrieren. Einen besonderen Typ von Web-Schnittstellen stellen APIs zur Authentisierung und Autorisierung im World Wide Web dar. Standardisierte APIs wie OAuth (Open Authorization) oder OpenID bieten Usern die Möglichkeit, sich auf anderen Portalen einzuloggen, ohne vorher explizit ein Benutzerkonto anlegen zu müssen. So ist zum Beispiel eine einzige Benutzeridentität durch den Einsatz dieser APIs auf vielen verschiedenen Portalen und Web-Services nutzbar.

Mehr zum Thema:
OwnCloud Server Installation: Ihr Leitfaden