Programmierschnittstelle
Wikipedia
http://de.wikipedia.org/wiki/Hauptseite
MediaWiki 1.6alpha
first-letter
Media
Spezial
Diskussion
Benutzer
Benutzer Diskussion
Wikipedia
Wikipedia Diskussion
Bild
Bild Diskussion
MediaWiki
MediaWiki Diskussion
Vorlage
Vorlage Diskussion
Hilfe
Hilfe Diskussion
Kategorie
Kategorie Diskussion
Portal
Portal Diskussion
Programmierschnittstelle
15358
14461685
2006-03-09T19:39:43Z
Schweika
90519
typo
Eine '''Programmierschnittstelle''' ist die [[Schnittstelle]], die von einem [[Betriebssystem]] oder von einem anderen [[Software]]system weiteren [[Computerprogramm|Programm]]en zur Verfügung gestellt wird. Oft wird dafür die Abkürzung '''API''' (für engl. ''application programming interface'', deutsch: ''Schnittstelle zur Anwendungsprogrammierung'') verwendet. Im Gegensatz zu einer [[Binärschnittstelle|Binärschnittstelle (ABI)]] definiert eine API nur die Verwendung der Schnittstellen auf Quelltextebene.
Die meisten Betriebssysteme bieten sehr vielfältige Programmierschnittstellen an. Neben den Zugriffen auf die [[Hardware]] wie [[Festplatte]] oder [[Grafikkarte]] wird dem Programmierer auch das Erstellen von Komponenten der [[grafische Benutzeroberfläche|grafischen Benutzeroberfläche]] erleichtert. Obwohl die Programmierschnittstelle nur zur Benutzung durch [[Software]]-[[Programmierer]] gedacht ist, und die Beschreibung sich auch entsprechend technisch gibt, hat ein API auch Vorteile für den [[Benutzer]]. Wenn alle Programmierer dasselbe API für das Erstellen, Zeichnen und Verwalten von [[Fenster (Computer)|Fenster]]n einer Benutzeroberfläche benutzen, sehen die Fenster auch alle gleich aus und besitzen dieselben [[Komponente]]n. Der Benutzer braucht die Bedienung nur einmal zu erlernen.
APIs haben durch die fortschreitende [[modulare Programmierung]] und den modularen Aufbau von [[Computer|Rechnern]] erheblich an Bedeutung gewonnen. Beispiel dafür sind [[Datenbankschnittstelle]]n.
Heutzutage stellen auch viele Internetdienste APIs zur Verfügung (für Beispiele siehe die [[#Webservice APIs|Weblinks]]).
== Einteilung ==
Programmierschnittstellen lassen in folgende Klassen einteilen:
* funktionsorientiert (z. B. [[Dynamic Link Library]])
* interface- oder objektorientiert (z. B.: [[ActiveX]] DLLs)
* protokollorientiert (z. B.: [[File Transfer Protocol|FTP]])
'''Funktionsorientierte Programmierschnittstellen''' kennen nur Funktionen mit oder ohne Rückgabewert als Mittel der Kommunikation. Dabei wird fast immer das Konzept der [[Handle]]s 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.
'''Interfaceorientierte Programmierschnittstellen''' verwenden Schnittstellenzeiger und sind damit deutlich flexibler als die funktionsorientierte Programmierschnittstellen. Häufig wird eine [[Typbibliothek]] mitgegeben.
'''Protokollorientierte Programmierschnittstellen''' sind unabhängig vom [[Betriebssystem]] und der [[Computerhardware]]. Allerdings muss das [[Netzwerkprotokoll|Protokoll]] stets neu implementiert werden. Um diesen Aufwand zu minimieren, wird die protokollorientierte Schnittstelle durch eine funktions- oder interfaceorientierte Schnittstelle gekapselt.
== Literatur ==
* Carsten Harnisch, Richard Jungkunz: ''213 Hacks für Google, Amazon und eBay. Die neuen APIs nutzen mit .NET, PHP, Flash, JavaScript, AppleScript, XML.'' Galileo Press, Bonn 2004, ISBN 3-89842-477-4
* Sascha Hameister, Aron Homberg: ''Google APIs'' Software & Support, Frankfurt am Main 2006, ISBN 3-935042-94-9
== Weblinks ==
=== Beispiele ===
* [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_reference.asp Windows-API-Referenz] (engl.)
* [http://kernelnewbies.org/documents/kdoc/kernel-api/linuxkernelapi.html Linux-API-Referenz] (engl.)
* [http://java.sun.com/j2se/1.5.0/docs/api/ Java-API-Referenz] (engl.)
* [http://cppreference.com/ C und C++ Standard-API-Referenz]
* [http://doc.trolltech.com/4.1/index.html Qt-4.1-Dokumentation]
==== Webservice APIs ====
* [http://www.amazon.com/webservices Amazon-Webservices]
* [http://entwickler.ebay.de/ Ebay-Entwicklerseiten]
* [http://www.google.com/apis/ Google API Dokumentation + Developer's Kit]
* [http://developer.yahoo.net/ Yahoo! Developer Network]
[[Kategorie:Programmierschnittstelle| ]]
[[ca:API]]
[[cs:API]]
[[da:API]]
[[en:Application programming interface]]
[[es:API]]
[[et:API]]
[[fr:Interface de programmation]]
[[gl:API]]
[[he:API]]
[[hu:Alkalmazásprogramozási felület]]
[[id:API]]
[[it:Application programming interface]]
[[ja:Application Programming Interface]]
[[ko:API]]
[[nl:Application Programming Interface]]
[[pl:API (informatyka)]]
[[pt:API]]
[[ru:Интерфейс программирования приложений]]
[[sv:Application Programming Interface]]
[[tr:API]]
[[uk:API]]
[[vi:Giao diện lập trình ứng dụng]]
[[zh:编程接口]]
Diese Version des Artikels stammt vom 09.03.2006.
Der Inhalt dieser Seite basiert auf dem Artikel
„Programmierschnittstelle“ aus der freien Enzyklop�die
Wikipedia und ist unter der
GNU-Lizenz f�r freie Dokumentation ver�ffentlicht. Auf der Wikipedia-Seite ist eine
Liste der Autoren einzusehen.