100% unverbindliche Anfrage

Bitte wählen Sie:

API Begriffserklärung und Definition

apiAls API wird eine Schnittstelle zwischen zwei Programmen, einem Programm und dem Betriebssystem oder, allerdings sehr selten, eine Schnittstelle zwischen zwei Betriebssystemen bezeichnet. Das Application Programming Interface vereinfacht oder ermöglicht die Kommunikation der beiden Programmsysteme auf Quelltextebene, meistens handelt es sich um modulare Systeme und es müssen nicht alle Teile einer API verwendet werden.

Je nach Variante der API kann sie dem Programmierer verschiedene Möglichkeiten zur Verfügung stellen, mit anderen Programmen zu kommunizieren. So erlauben zum Beispiel die in verschiedene Betriebssysteme integrierten APIs, den Zugriff auf die systeminternen Bibliotheken zum Speichern von Daten auf der Festplatte, die Aktivierung von Grafik- und Soundkarte sowie das Starten von Diensten. Auch die Betriebssysteme nutzen APIs, um mit dem BIOS zu kommunizieren und Hardwaregeräte mit Treibern aktivieren zu können, die andernfalls im System deaktiviert blieben.

Verschiedene Arten von APIs

Je nach Anwendungsgebiet werden APIs in verschiedene Kategorien unterteilt. Die komplexeste und tiefgehendste von ihnen ist die funktionsorientierte API, die einem Programm direkten Zugriff auf die Hardware erlaubt. Hierbei entsteht eine Verkettung mehrerer Schnittstellen, das Programm sendet über die API des Betriebssystems einen Request zum Öffnen eines Handles, dieses wiederum gibt über seine eigene Schnittstelle den angefragten Wert an das Programm weiter.

Das Öffnen eines Handles kann dabei auch mehrere Funktionen freischalten, die dann über andere, daran anknüpfende Requests abgerufen werden können. Der Handle wird erst dann wieder geschlossen, wenn alle an ihn anknüpfenden Requests abgearbeitet sind. So wird sichergestellt, dass auch über mehrere Threads mit ihnen gearbeitet werden kann.

Eine weitere Form der APIs sind die dateiorientierten Schnittstellen. Diese erlauben die Kommunikation mit den an den Computer angeschlossenen Speichermedien. Primär können über solche Requests Dateien angefragt, überschrieben und ausgelesen werden, sekundär sind aber weitere Funktionen möglich, beispielsweise das Auslesen ganzer Ordnerstrukturen oder das Anlegen von Dateiinformationen für den Anwender. Zu beachten ist jedoch, dass eine solche Schnittstelle auch das Betriebssystem einbezieht, da dies für die Verteilung und Einhaltung der Zugriffsrechte zuständig ist.

Protokollorientierte APIs erlauben die Kommunikation zwischen zwei Programmen, unabhängig von Hardware und Betriebssystem. Hier werden keine Kernelbefehle oder systemkritischen Handles aufgerufen, die Kommunikation findet nur über die von den Programmen definierten Kanäle, beispielsweise Protokolle oder Bibliotheken statt. Ein Nachteil der protokollorientierten Schnittstellen ist ihre Unfähigkeit, auch über mehrere Programmkomponenten abgerufen zu werden. Bei der Erstellung eines neuen Moduls oder Systems müssen alle Requests neu gesendet und die entsprechenden Bibliotheken erneut in das Programm implementiert werden.

Trotz ihrer relativen Nachteile sind protokollorientierte APIs heute eine weit verbreitete Form, um zwei Programme miteinander kommunizieren zu lassen, da sie flexibel und gleichzeitig ressourcenschonend arbeiten. Hauptsächlich reicht die Implementierung von ein bis zwei Bibliotheken bereits aus, um den vollen Umfang an benötigter Kommunikation zu gewährleisten.

Schnittstellen in der objektorientierten Programmierung

Auch in der objektorientierten Programmierung werden APIs benutzt, um die Funktionalität verschiedener Klassen miteinander zu verknüpfen. Eine solche Schnittstelle ist aber an mehrere Restriktionen gebunden, die vorher von den Programmen definiert und akzeptiert werden müssen. Diese, auch als Kontrakt bezeichnete Definitionen, werden meist direkt über die Syntax ausgehandelt. Entspricht ein Request nicht der erwarteten Syntax, kann er von der Gegenseite abgelehnt werden, es kommt kein Handle zustande und die Kommunikation scheitert. Erst durch die Einhaltung der vorgeschriebenen Syntax kommt der Kontrakt zustande und die angefragte Klasse wird für die Kommunikation eröffnet. Die Einhaltung einer speziellen Syntax wird zwar bei den meisten Programmiersprachen auch intern vorausgesetzt, bei APIs wird dieser aber wegen des Zustandekommens von Kontrakten eine besondere Bedeutung zugemessen. Dabei muss die vorgegebene Syntax auch nicht immer mit der internen Programmsyntax übereinstimmen.

Ein populäres Beispiel dafür ist die sogenannte Object Constraint Language, mit der schon vor der Programmierung der eigentlichen Software mehrere Bedingungen, beispielsweise die Spezifikationen für einen Kontrakt, festgelegt werden können. Die Syntax der OCL ist stark vereinfacht, mit ihrer Hilfe sind nur elementare Deklarationen möglich. Zudem ist sie nicht zwingend Bestand der zur letztendlichen Programmierung benutzten Systemsprache.

Definition von anbietenden und ermöglichenden Interfaces

Bei der Implementierung einer API in eine Software müssen die Programmierer sich entscheiden, ob es sich bei diesem um ein anbietendes oder um eine ermöglichendes Interface handeln soll. Die Handhabung der beiden Arten unterscheidet sich stark, zudem sind bei ermöglichenden Interfaces unter Umständen nicht alle gewünschten Funktionen realisierbar.

Ein Beispiel für ein ermöglichendes Interface wäre ein einfacher Dateihandle, das Programm definiert ein Interface „getData“, mit dessen Hilfe es möglich ist, die jüngst von der Software geschriebenen Daten auszulesen. Nutznießer des Interfaces ist aber nicht das Programm selbst, da es die von ihm geschriebenen Daten auch über einen einfachen Befehl auslesen könnte, sondern ein anderes Programm, dass diese über den Request getData anfragt. Umgekehrt handelt es sich um ein anbietendes Interface, wenn das Programm selbst den Request anfragt und von der Gegenstelle einen Wert erhält. Diese ist heute auch die geläufigste Art der APIs, da man so ein bestimmtes Bouqet an Funktionen zur Verfügung stellt und der Programmierer selbst entscheidet, welche davon er benötigt.

Veränderung bei Interfaces und Schnittstellen

Die heutige Software befindet sich im ständigen Wandel, Patches und Updates führen dazu, dass Fehler im Programm ausgemerzt und neue Funktionen hinzugefügt werden. Dies ist auch für die API von elementarer Bedeutung, da sichergestellt werden muss, dass die ehemals definierten Interfaces auch in neueren Versionen noch funktionieren. Ist dies nicht der Fall, müssen alle Programme, die diese benutzen, ebenfalls einem Update unterzogen werden.

Definiert ein Programmierer im Zuge eines Updates ein Interface innerhalb einer API neu, so spricht man dabei vom „Evolving„. Die Schnittstelle entwickelt sich weiter und früher benutzte Interfaces können unter Umständen nicht mehr benutzt werden, weil sie entweder nicht mehr vorhanden sind oder sich ihre Funktion verändert hat. Im Gegenzug handelt es sich um eine „Stable API„, wenn die definierten Interfaces gleich bleiben und nur neue Funktionen oder Handles hinzugefügt wurden. Dann ist es nicht zwingend nötig, das Programm an die neue Schnittstelle anzupassen, obwohl sich daraus Vorteile ergeben könnten.



Zurück zur Hauptseite: a

Sie haben Fragen?

Kostenlose, unverbindliche Erstberatung:

Anrufer aus Deutschland:
Tel. 0771 - 1589439
Internationale Beratung:
Tel. +49771 - 1589439
Anfrage per Email:
buero@seo-analyse.com

» zum Anfrage-Formular

Onpage Optimierung

Suchmaschinenoptimierung im Quelltext

Wir schaffen für Ihre Webseite oder Ihren Shop eine optimale Onpage-Basis für weiterführende Optimierungsmaßnahmen.

Offpage Optimierung

Offpage Suchmaschinenoptimierung

Natürlicher Linkaufbau gemäß den Regeln der Suchmaschinen - wir bieten ihn!

SEO Beratung

SEO Beratung

Unsere Spezialisten beraten Sie gerne hinsichtlich Ihrer akuten oder strategischen Fragen.

Ranking Monitoring

Ranking Optimierung

Bei uns Standard: qualifiziertes Monitoring Ihrer Google Platzierungen.

Suchmaschinenoptimierung für Google

Google Suchmaschinenoptimierung

Wir kombinieren Google Optimierung mit ganzheitlicher Suchmaschinenoptimierung.

SEO Strategie

SEO Strategie

Praxisbewährte Strategien, die auf Zahlen und Fakten basieren.

SEO Tools

SEO Tools

Immer im Bild: professionelle SEO Tools informieren Sie über den Status Quo.