Programmierschnittstelle
Eine Programmierschnittstelle ist ein Programmteil, der von einem Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung gestellt wird. Oft wird dafür die Abkürzung API (EnS|application programming interface, DeS|„Schnittstelle zur Anwendungsprogrammierung“) verwendet. Im Gegensatz zu einer Binärschnittstelle (ABI) definiert eine API nur die Programmanbindung auf Quelltextebene.
Neben dem Zugriff auf Datenbanken oder Hardware wie Festplatte oder Grafikkarte, kann eine API auch das Erstellen von Komponenten der grafischen Benutzeroberfläche ermöglichen oder vereinfachen.
Heutzutage stellen auch viele Internetdienste APIs zur Verfügung (für Beispiele siehe Weblinks). Folgende APIs gibt es unter anderem für/von soziale/n Netzwerke/n: Connect (Facebook), Direct (YouTube) sowie Sitecore (Facebook, Twitter, StudiVZ)
Im weiteren Sinne wird die Schnittstelle jeder Bibliothek (lang|en|Library) als API bezeichnet.
Einteilung
Programmierschnittstellen lassen sich in folgende Klassen einteilen:
- funktionsorientiert (z. B. Dynamic Link Library)
- dateiorientiert (z. B. Gerätedateien unter UNIX)
- objektorientiert (z. B. ActiveX-DLLs)
- protokollorientiert (z. B. FTP)
Funktionsorientierte Programmierschnittstellen kennen nur Funktionen mit oder ohne Rückgabewert als Mittel der Kommunikation. Dabei wird fast immer das Konzept der Handles verwendet. Man ruft eine Funktion auf und bekommt ein Handle zurück. Mit diesem Handle lassen sich weitere Funktionen aufrufen, bis abschließend das Handle wieder geschlossen werden muss. Das BIOS eines Personal Computer ist die älteste Programmierschnittstelle für diesen Rechnertyp.
Dateiorientierte Programmierschnittstellen werden über die normalen Dateisystemaufrufe open, read, write und close angesprochen. Sollen Daten an ein Objekt gesendet werden, werden diese mit write geschrieben, sollen welche empfangen werden, werden sie mit read gelesen. Unter UNIX ist dieses Prinzip bei der Ansteuerung von Gerätetreibern weit verbreitet.
Objektorientierte Programmierschnittstellen verwenden Schnittstellenzeiger und sind damit deutlich flexibler als die funktionsorientierten Programmierschnittstellen. Häufig wird eine Typbibliothek mitgegeben.
Protokollorientierte Programmierschnittstellen sind unabhängig vom Betriebssystem und der Computerhardware. Allerdings muss das Protokoll stets neu implementiert werden. Um diesen Aufwand zu minimieren, wird die protokollorientierte Schnittstelle durch eine funktions- oder interfaceorientierte Schnittstelle gekapselt. Man kann hier weiterhin zwischen allgemeinen (z. B. SOAP) und anwendungsspezifischen (z. B. SMTP) Protokollen unterscheiden.
Siehe auch
Literatur
- Literatur|Autor=E. Gamma, R. Helm, R. Johnson, J. Vlissides|Titel=Design Patterns – Elements of Reusable Object-Oriented Software|Verlag=Addison-Wesley|Jahr=1995|ISBN=0-201-63361-2
- Literatur|Autor=Joshua Bloch|Titel=How to Design a Good API and Why it Matters
Weblinks
- Windows-API-Referenz (Microsoft) (engl.)
- Linux-API-Referenz (engl.)
- Java-API-Referenz (engl.)
- C und C++ Standard-API-Referenz (engl.)
- Qt-4.6-Dokumentation (engl.)
- Python/C-API-Referenz (engl.)
- Einführung in die Facebook-API (engl.)
- Einführung in die YouTube-API (engl.)
ar:واجهة برمجة التطبيقات
bg:Приложно-програмен интерфейс
bn:অ্যাপলিকেশন প্রোগ্রামিং ইন্টারফেস
bs:Application Programming Interface
ca:API
cs:API
da:Application programming interface
el:Διεπαφή προγραμματισμού εφαρμογών
Application programming interface
es:Interfaz de programación de aplicaciones
et:Rakendusliides
eu:Application Programming Interface
fa:رابط برنامهنویسی نرمافزار
fi:Ohjelmointirajapinta
Interface de programmation
gl:API
he:ממשק תכנות יישומים
hu:Alkalmazásprogramozási felület
id:Antarmuka pemrograman aplikasi
it:Application programming interface
ja:Application Programming Interface
ko:API
lt:Aplikacijų programavimo sąsaja
nl:Application programming interface
no:API (programmering)
pl:API (informatyka)
pt:API
ro:API
ru:Интерфейс программирования приложений
sh:API
simple:Application programming interface
sk:Application programming interface
sq:Interfejsi për programimin e aplikacioneve
sr:Апликациони програмски интерфејс
sv:Application Programming Interface
ta:பயன்பாட்டு நிரலாக்க இடைமுகம்
th:เอพีไอ
tr:Uygulama programlama arayüzü
uk:Прикладний програмний інтерфейс
vi:Giao diện lập trình ứng dụng
zh:应用程序接口
Text und Bilder dieses Beitrags stammen aus dem Artikel Programmierschnittstelle der freien Enzyklopädie Wikipedia und stehen unter der GNU Free Documentation License. Die Liste der Autoren ist in der Wikipedia unter dieser Seite verfügbar, der Original-Artikel lässt sich hier bearbeiten.