Unterschiedliche Steckdosenspezifikationen für die Elektromobilität [52]
1.2Vorteile eines API
Doch wieso hat sich die Steckdose in unseren Haushalten so etabliert? Wieso ist das API eine immer wiederkehrende Erscheinung, die sich langsam aber stetig als ein Standard in unserer Applikationswelt etabliert? Wieso sollte man als Stromanbieter seinen Nutzern Steckdosen zur Verfügung stellen?
1.2.1Flexibilität für Anbieter und Konsument
Eine Steckdose ist bequem. Mit ihr kann sich ein Hersteller von Toastern auf die Entwicklung des Toasters konzentrieren, ohne sich dabei Gedanken über die Herkunft des Stroms machen zu müssen. Solange er die standardisierte Schnittstelle der Steckdose benutzt, wird dieser ihm vom Anbieter auf vereinbarte Weise geliefert.
Für den Anbieter des Stromes heißt das auch, dass er sich ebenso keine Gedanken über die Integration seines Services in die Systeme der Nutzer machen muss. Er stellt ihn lediglich in bekannter Form, direkt an der Schnittstelle zur Verfügung und kann dahinter wesentliche Teile des Stromnetzes – wie die Quelle des Stroms oder die Farbe der Stromkabel – verändern, ohne dabei die Konsumenten funktionsuntüchtig zu machen. Zwischen Stromanbieter und -abnehmer findet also eine Entkopplung statt.
1.2.2Einheitliches Design und Funktionen
Durch die große Beliebtheit mobiler Endgeräte bieten die meisten Unternehmen ihre Daten und Funktionen nicht nur auf ihrer Webseite an. Eine Kundenbindung über unterschiedliche Kanäle ist ein gängiges Geschäftsmodell für moderne Unternehmen.
Den eigenen Service über ein API zur Verfügung zu stellen, kann dabei helfen, diesen auf diverse Kanäle zu transportieren. Die lose Kopplung der Schnittstellen ermöglicht, die gleichen Daten und Funktionen an verschiedene Abnehmer zu verteilen und dadurch sowohl auf mobilen Endgeräten, der Webseite, bis hin zu Smarthome-Geräten den Endnutzern ein einheitliches Design und dieselbe Funktionsweise zu bieten.
1.2.3Neue Geschäftsfelder
Vor einigen Jahren machte Amazon seine ersten Umsätze durch den Onlineversand von Büchern. Mittlerweile gilt das Unternehmen als einer der größten IT-Giganten unserer Zeit. Möglich wurde das nicht durch die Aufnahme zusätzlicher Waren in den Shopkatalog, sondern durch ein Umdenken in der Firmenkultur. Als Produkt werden mittlerweile nicht nur die Waren im Onlineshop gesehen, sondern Services, die Amazon zusätzlich bieten kann.
Diese unter dem Namen Amazon Web Services (AWS) zusammengefassten Dienste bieten von Webhosting über Cloud-Services eine breit gefächerte Auswahl an Produkten über eine Vielzahl von APIs an, die Amazon bereits für interne Zwecke benötigt. Diese über eine Schnittstelle nach außen zu tragen, verbreiterte also die Geschäftsfelder des Unternehmens signifikant. Unter anderem konnte durch das Anbieten dieser Services mit Netflix ein weiteres milliardenschweres Unternehmen als Kunde gewonnen werden.
Ähnlich kann der Entwickler eines E-Mail-Diensts diesen entweder individuell in das System jedes einzelnen Kunden integrieren, oder den Service über ein API allgemein entkoppelt zur Verfügung stellen. Damit können Firmen und Bereiche, die eventuell zuvor nicht als Kunden in Betracht gekommen wären, diesen Service selbstständig verwenden.
1.2.4Innovationstreiber API
Zudem sind APIs Innovationstreiber. Sicher hätte bei Google niemand damit gerechnet, dass mit der Veröffentlichung ihrer Google-Maps-API eine Augmented-Reality-Anwendung Einzug in viele private Smartphones hält. Das Spielprinzip hinter dem von Niantic entwickelten Mobile Game Ingress [35] ist spätestens seit dem Hype um Pokemon Go im Jahr 2016 [36] bekannt: mit dem Smartphone auf einer echten Karte der Umgebung und mit einer Augmented-Reality-Funktion der Kamera bestimmte Spielziele erfüllen. Öffentliche APIs ermutigen Entwickler, mit dem angebotenen Service ganz neue Wege zu beschreiten. Es findet auch hier eine Erweiterung der Geschäftsfelder und somit eventuell der Einnahmequellen des Anbieters statt.
1.3API: Die Definition
Was genau veröffentlicht ein API-Anbieter? Was integriert ein API-Konsument in seine eigenen Systeme? Was sind eigentlich API-Anbieter, API-Konsumenten, und was unterscheidet sie? Um diese Fragen zu beantworten, bedarf es klarer Definitionen von APIs und deren Akteuren.
1.3.1API-Vertrag
Wie bereits erwähnt, sind APIs wie Steckdosen: eine Abstraktion eines bestimmten Service, mit dem sich verschiedene Konsumenten in einer genau festgelegten Art verbinden können. Außer in einer Smarthome-Umgebung sind die Konsumenten eines API jedoch selten Toaster, sondern andere Programme, die die Funktionen des API nutzen oder integrieren möchten.
Martin Reddy verfasste 2011 eine kurze, allgemeine Definition von APIs [46]. Laut Reddy bieten APIs eine Abstraktion für ein Problem und spezifizieren, wie Benutzer mithilfe von Softwarekomponenten, die eine Lösung des Problems implementieren, interagieren sollen. Reddy spricht also davon, dass ein API aus mindestens zwei Teilen besteht: zum einen einer Abstraktion, die hilft, ein genaues Problem zu lösen, zum anderen die Spezifikation, wie mit ihr zu interagieren ist. 2014 ging Joshua Bloch auf Basis dieser Definition noch etwas tiefer ins Detail:
»Ein API spezifiziert die Operationen sowie Ein- und Ausgaben einer Softwarekomponente. Ihr Hauptzweck besteht darin, eine Menge an Funktionen unabhängig von ihrer Implementierung zu definieren, sodass diese Implementierung variieren kann, ohne die Benutzer der Softwarekomponente zu beeinträchtigen.« Joshua Bloch [9]
Bloch sieht somit ebenfalls sowohl eine Abstraktion von Funktionen als auch die genaue Spezifikation der Interaktion mit ihr als Teile des API, legt jedoch noch besonderen Wert auf die Trennung von Implementierung und der eigentlichen Schnittstelle.
Daniel Jacobson, Greg Brail und Dan Woods ziehen ähnliche Schlüsse und erarbeiten in ihrem Werk APIs – A Strategy Guide [37] folgende, ausführliche Definition für APIs:
API-Definition von Daniel Jacobson, Greg Brail und Dan Woods
Ein API ist ein Weg für zwei Computer, miteinander über ein Netzwerk (überwiegend das Internet) mit einer gemeinsamen Sprache, die beide verstehen, zu kommunizieren. APIs haben bestimmte Eigenschaften:
Der API-Anbieter beschreibt exakt, welche Funktionalität das API anbietet.
Der API-Anbieter beschreibt, wann die Funktionalität verfügbar ist und wann sie möglicherweise inkompatibel verändert wird.
Der API-Anbieter kann zusätzliche technische Beschränkungen des API skizzieren, beispielsweise Zugriffsraten und -grenzen, die kontrollieren, wie oft eine spezifische Anwendung, oder ein Endnutzer es innerhalb einer Stunde, eines Tags oder eines Monats benutzen darf.
Der API-Anbieter kann zusätzliche rechtliche oder geschäftliche Beschränkungen zur Benutzung des API skizzieren, beispielsweise markenschutzrechtliche Einschränkungen oder Arten der Benutzung.
Entwickler akzeptieren, das API so zu nutzen, wie es vom API-Anbieter beschrieben ist, und benutzen nur die Teile, die er beschrieben hat, nach den Regeln, die von ihm für die Nutzung festgelegt wurden.
Diese Auflistung an Rechten und Pflichten von API-Anbietern und konsumierenden Entwicklern sichert die Funktionsfähigkeit der Schnittstelle und wird deshalb auch seiner Form entsprechend