API
API – eine Programmierschnittstelle für andere Anwendungen
API ist ein Akronym und steht für Application Programming Interface und bezeichnet somit eine Schnittstelle zur Anwendungsprogrammierung. Grundsätzlich bietet eine API als Teil eines Systems oder einer Software anderen Systemen oder Programmen die Möglichkeit, sich anzubinden, um so bspw. auf systeminterne Bibliotheken oder auf gespeicherte Daten und Dateien zuzugreifen.
Verschiedene API Arten
Es gibt vier verschiedene Arten eines Application Programming Interfaces:
- Die funktionsorientierte API ermöglicht einem Programm einen direkten Zugriff auf die Hardware eines Systems, bspw. zur Aktivierung eines Hardwaregerätetreibers. Das Programm sendet über die API des Betriebssystems einen Request zum Öffnen eines Handles, das über seine eigene Schnittstelle den angefragten Wert an das Programm weitergibt. Das Handle kann dabei auch mehrere Funktionen freischalten, die dann über andere, daran anknüpfende Requests abgerufen werden können.
- Die dateiorientierte API ermöglicht die Kommunikation mit den Speichermedien des Computers, so dass per Request Dateien und Ordnerstrukturen angefragt, ausgelesen oder überschrieben werden können. Für die Verteilung und Einhaltung der Zugriffsrechte ist das Betriebssystem zuständig.
- Die protokollorientierte API funktioniert unabhängig von Hardware und Betriebssystem, die Kommunikation findet über Protokolle und Bibliotheken statt. Sie gilt als flexibel, obwohl Requests über mehrere Programmkomponenten nicht möglich sind. Oft ist bereits die Implementierung von ein bis zwei Bibliotheken ausreichend, um den vollen Umfang der Kommunikation zu gewährleisten.
- Die objektorientierte API wird genutzt, um die Funktionalität verschiedener Klassen miteinander zu kombinieren. Eine solche Schnittstelle ist an mehrere, vorab definierte Restriktionen gebunden, die über die Syntax ausgehandelt werden.
API Dokumentation
Ähnlich wie eine Software kann auch eine Schnittstelle weiterentwickelt werden. Entsprechend wird von einer „Evolving API“ gesprochen; häufig zu erkennen, wenn sich bei neuen Softwareversionen frühere Schnittstellen (aus Sicht der Kunden überraschenderweise) nicht mehr nutzen lassen. Ändert sich die Schnittstelle trotz neuer Softwareversion nicht, wird sie als „Stable API“ bezeichnet. Wichtig ist, dass ein Application Programming Interface dokumentiert ist, so dass die Anbindung der verschiedenen Systeme und Programme überhaupt funktionieren kann.
In Zeiten von Online-Plattformen und Eco-Systemen wird die Dokumentation von Schnittstellen immer wichtiger. Eine gute Dokumentation bietet die Möglichkeit, Dienste und Funktionalitäten zu bestehenden Produkten hinzufügen. Für Entwickler ist es wichtig, die Schnittstelle zu verstehen; eine Dokumentation mit Details zu Funktionen, Klassen, Rückgabetypen etc., evtl. angereichert mit Tutorials und Beispielen, hilft bei der Programmierung von Erweiterungen.
Folgende Vorteile bietet eine „gute“ API Dokumentation:
- Steigerung der digitalen Reichweite
Im Kontext von Online-Plattformen und Eco-Systemen wird von der digitalen Reichweite einer API gesprochen, die durch die Bereitstellung eine Basis für neue Dienste und Services bietet. Je größer die Reichweite, desto mehr Benutzer verwenden die Schnittstelle. Alternativ wird auch von dem Netzwerkeffekt gesprochen. - Höhere Akzeptanz
Bei einer API gilt das gleiche wie bei einem Produkt: je besser sie funktioniert, desto mehr Menschen sehen einen Wert in der Nutzung. Die Akzeptanz steigt. Können Entwickler das ursprüngliche Produkt mit sinnvollen Funktionen erweitern, steigt sowohl die Akzeptanz bei den Entwicklern als auch bei den Anwendern. - Sinkende Aufwände und Kosten im Support
Eine gute Schnittstellen-Dokumentation steigert nicht nur den Bekanntheitsgrad, die digitale Reichweite und die Akzeptanz, sondern verringert auch den Zeitaufwand für die Einarbeitung von internen oder externen Entwicklern. So lassen sich Aufwände und Kosten im Support reduzieren. - Einfachere Softwarepflege
Darüber hinaus trägt die Dokumentation zur Produktpflege bei. Sie hilft Entwicklern, Strukturen, Ressourcen, Methoden etc. zu kennen, so dass Aktualisierungen idealerweise schneller und besser vorgenommen werden können.
API Beispiele
Viele Softwarelösungen bieten Schnittstellen zur Interaktion an. Zudem gibt es zahlreiche Application Interfaces, die öffentlich zugänglich sind und von Entwicklern in ihren Anwendungen verwendet werden können. Nachfolgend finden Sie einige Beispiele:
- Google Maps ermöglicht Entwicklern den Zugriff auf die Karten- und Standortdaten von Google, so dass sie benutzerdefinierte Karten erstellen und standortbezogene Funktionen hinzufügen können.
- Twitter ermöglicht Entwicklern den Zugriff auf die Daten und Funktionen von Twitter, z. B. das Abrufen von Tweets, das Veröffentlichen von Tweets und die Suche nach Benutzern.
- OpenWeatherMap ermöglicht Entwicklern den Zugriff auf Wetterdaten für jeden Ort der Welt, einschließlich aktueller Wetterbedingungen, Vorhersagen und historischer Daten.
- YouTube ermöglicht Entwicklern den Zugriff auf die Daten und Funktionen von YouTube, z. B. das Abrufen von Videoinformationen, das Hochladen von Videos und die Suche nach Videos.
- Facebook ermöglicht Entwicklern den Zugriff auf Daten und Funktionen von Facebook, z. B. das Abrufen von Benutzerinformationen, das Posten auf Facebook und die Suche nach Inhalten.
- Stripe ermöglicht Entwicklern die Integration von Zahlungsverarbeitungsfunktionen in ihre Anwendungen und erleichtert so die Annahme von Zahlungen von Benutzern.
- Twilio bietet Entwicklern Zugang zu einer Cloud-Kommunikationsplattform, mit der sie ihren Anwendungen Messaging-, Sprach- und Videofunktionen hinzufügen können.
Dies sind nur einige Beispiele für die vielen APIs, die Entwicklern zur Verwendung in ihren Anwendungen zur Verfügung stehen.
Häufig fällt im Zuge von Application Programming Interfaces auch der Begriff „Mashup“ . Ein Mashup ist eine Webanwendung, die Daten oder Funktionen aus verschiedenen Quellen kombiniert, um einen neuen Dienst oder eine neue Anwendung zu erstellen. Ein Wetter-Mashup kann bspw. Daten aus einer Wetter-API mit Daten aus einer Karten-API kombinieren, um Wetterinformationen auf einer Karte anzuzeigen.
Impuls zum Diskutieren
Die Bedeutung von Application Programming Interfaces wird unterschätzt. Nicht die Plattformen, sondern offene Schnittstellen sind der Grund für den Erfolg.
Hinweise:
Wenn Ihnen der Beitrag gefällt oder Sie darüber diskutieren wollen, teilen Sie ihn gerne in Ihrem Netzwerk. Und falls Sie sich für weitere Tipps aus der Praxis interessieren, dann testen Sie unseren wöchentlichen Newsletter mit neuen Beiträgen, Downloads, Empfehlungen und aktuellem Wissen. Vielleicht wird er auch Ihr Lieblings-Newsletter!
Die gesammelte Erfahrung eines Entwicklers beim Entdecken und Erlernen der Möglichkeiten, und der Integration neuer Funktionen wird übrigens als Developer Experience (DX) bezeichnet.
Als Äquivalent zur API gilt das User Interface, mit dem Anwender auf die Funktionen und Daten eines Systems zugreifen. Es ist ein wichtiger Aspekt für eine positive User Experience.
Hier finden Sie ergänzende Informationen aus unserer Rubrik Wissen kompakt: