Zum Inhalt springen
L

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
  1. 1. Definition und Aufgaben
  2. 2. Typklassen und Arbeitsweisen
  3. 3. Entwicklungsstufen und Stabilität
  4. 4. Bedeutung und Beispiele

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.

Weiterlesen

Programmierung Beim Programmieren sind wesentliche Aspekte zur Softwarequalität zu berücksichtigen und durch die Gestaltung des Quellcodes umzusetzen. Siehe dazu als Beispiele … Software Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben. · Software sind Programme sowie die zugehörige … Quelltext Quelltext, auch Quellcode (englisch source code) oder unscharf Programmcode genannt, ist in der Informatik der für Menschen lesbare, in einer … Datenbank Eine Datenbank, auch Datenbanksystem genannt, ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe einer Datenbank ist es, große … Hardware Unterteilung · Ausgabegeräte (Drucker, Bildschirm, Beamer, Lautsprecher …) · Eingabegeräte (Tastatur, Maus, Joystick …) · Einlesegeräte (Mikrofone, … Festplattenlaufwerk Ein Festplattenlaufwerk (englisch hard disk drive, Abkürzung HDD), früher auch Festplatten-Speichersystem oder Festplatten-System, oft auch als Festplatte … Grafische Benutzeroberfläche GUI von englisch graphical user interface) bezeichnet eine Form von Benutzerschnittstelle eines Computers. Sie hat die Aufgabe, Anwendungssoftware auf einem … Parameter (Informatik) Parameter – (deutsch) auch Übergabewerte genannt – sind in der Informatik Variablen, durch die ein Computerprogramm (oft ein Unterprogramm) auf die … Funktion (Programmierung) Eine Funktion (englisch function) ist in der Informatik und in verschiedenen höheren Programmiersprachen die Bezeichnung eines Programmkonstrukts, … Datei Eine Datei (englisch file) ist in der Informationstechnologie die Zusammenstellung gleichartiger digitaler Daten, die zum Speichern auf Datenträgern oder … Objekt (Programmierung) Ein Objekt in der Programmierung bezeichnet eine inhaltlich zusammengehörige Datenmenge: In der objektorientierten Programmierung wird eine Objektinstanz … Netzwerkprotokoll Ein Netzwerkprotokoll (auch Netzprotokoll) ist ein Kommunikationsprotokoll für den Austausch von Daten zwischen Computern bzw. Prozessen, die in einem …