Wikipedia · einfach zusammengefasst · Stand
Programmierschnittstelle
Im Gegensatz zu einer Binärschnittstelle (ABI) definiert eine Programmierschnittstelle nur die Programmanbindung auf Quelltext-Ebene. Die Bereitstellung einer …
Inhalt4 Abschnitte
Definition und Aufgaben
Eine Programmierschnittstelle, kurz API (englisch application programming interface), ist ein Programmteil, den ein Softwaresystem anderen Programmen zur Anbindung an dieses System bereitstellt. Sie beschreibt die Anbindung auf Quelltext-Ebene und unterscheidet sich damit von einer Binärschnittstelle (ABI). Zu einer API gehört in der Regel eine detaillierte Dokumentation der verfügbaren Funktionen und ihrer Parameter.
APIs ermöglichen beispielsweise den Zugriff auf Datenbanken oder Hardware wie Festplatten und Grafikkarten. Sie können auch die Erstellung von Komponenten grafischer Benutzeroberflächen vereinfachen. Die Windows Application Programming Interface erlaubt etwa externen Firmen, Software für das Betriebssystem Windows zu entwickeln. Viele Online-Dienste bieten ebenfalls APIs an; diese werden als Webservices bezeichnet. Im weiteren Sinne kann auch die Schnittstelle einer Bibliothek als API gelten.
Typklassen und Arbeitsweisen
Programmierschnittstellen werden in vier Typklassen eingeteilt:
-
Funktionsorientierte APIs verwenden Funktionen mit oder ohne Rückgabewert. Häufig wird ein Handle genutzt: Eine Funktion liefert ein Handle zurück, mit dem weitere Funktionen aufgerufen werden können. Abschließend muss das Handle geschlossen werden.
-
Dateiorientierte APIs werden über die Dateisystemaufrufe open, read, write und close angesprochen. Daten werden mit write an ein Objekt gesendet und mit read empfangen. Unter UNIX ist dieses Prinzip bei der Ansteuerung von Gerätetreibern weit verbreitet.
-
Objektorientierte APIs verwenden Schnittstellenzeiger und sind dadurch flexibler als funktionsorientierte APIs. Häufig wird eine Typbibliothek mitgeliefert.
-
Protokollorientierte APIs sind unabhängig von Betriebssystem und Hardware. Das Protokoll muss jedoch für jede Nutzung neu implementiert werden. Zur Verringerung dieses Aufwands wird die protokollorientierte Schnittstelle häufig durch eine funktions- oder interfaceorientierte Schnittstelle gekapselt. Man unterscheidet allgemeine Protokolle wie SOAP und anwendungsspezifische Protokolle wie SMTP.
Entwicklungsstufen und Stabilität
Bei APIs für Anwendungssoftware wird zwischen sich entwickelnden (englisch evolving) und stabilen Programmierschnittstellen (englisch stable API) unterschieden. Grundlage ist die Frage, ob Operationen aus früheren Versionen in allen Folgeversionen weiterhin vorhanden sind und dieselbe Bedeutung behalten.
Bei einer stabilen Schnittstelle muss die darauf aufbauende Anwendung nicht geändert werden. Die Weiterentwicklung einer API, die keine Änderungen in den Anwenderprogrammen erforderlich macht, wird als Refactoring bezeichnet. Standardisierte APIs über verschiedene Betriebssysteme hinweg können Quelltextkompatibilität ermöglichen. Das bedeutet, dass Quelltext ohne Anpassungen für die jeweiligen Systeme erfolgreich kompiliert werden kann.
Bedeutung und Beispiele
Eine gut dokumentierte API kann für ein Software- oder Hardwareprodukt einen erheblichen Wettbewerbsvorteil darstellen. Sie ermöglicht anderen Softwarefirmen oder freiberuflichen Programmierern, zusätzliche Programme zu entwickeln. Dadurch kann die Attraktivität des Ausgangssystems steigen, etwa bei einem Betriebssystem, einer Spielkonsole oder einer Smartphone-Familie. Die Geschäftspolitik zur API kann deshalb den kommerziellen Erfolg der Software und gegebenenfalls der zugehörigen Hardware beeinflussen.
Hohe Kosten für die notwendige Dokumentation oder ein teures Software-Entwicklungssystem können eine Eintrittsbarriere bilden. Auch häufige Änderungen der API verursachen Anpassungsaufwand und Kosten bei den Entwicklern von Zusatzprogrammen und können deren Entwicklung wirtschaftlich unattraktiv machen.
Als Beispiel wird Xcode genannt: Die Entwicklungsumgebung ermöglicht den Zugriff auf die API des Smartphone-Betriebssystems Apple iOS, steht aber nur für Mac-Computer von Apple als kostenloser Download bereit. Entwickler müssen außerdem ein Geheimhaltungsabkommen unterzeichnen und einen Mitgliedsbeitrag entrichten. Für Unix existiert der von der IEEE festgelegte POSIX-Standard. Die Dokumentation ist sehr teuer und darf wegen des Urheberrechts nicht veröffentlicht werden. Deshalb gibt es in neuerer Zeit eine Tendenz zur offenen Single UNIX Specification der Open Group, die im Internet frei verfügbar ist und zu der alle Vorschläge einreichen können.