Definition „Programmierschnittstelle“

Was ist eine API?

| Autor / Redakteur: Stefan Luber / Stephan Augsten

Durch den Einsatz von Code-Modulen zusammen APIs werden Programme weniger fehleranfällig und leichter wartbar.
Durch den Einsatz von Code-Modulen zusammen APIs werden Programme weniger fehleranfällig und leichter wartbar. (Bild gemeinfrei: onlineCup - Pixabay.com)

Die Abkürzung API steht für Application Programming Interface und bezeichnet eine Programmierschnittstelle. Die Anbindung erfolgt auf Quelltext-Ebene. APIs kommen in vielen Anwendungen zum Einsatz und werden im Webumfeld in Form von Web-APIs genutzt.

Grundlagen und Eigenschaften einer API

Eine Programmierschnittstelle dient dazu, Informationen zwischen einer Anwendung und einzelnen Programmteilen standardisiert auszutauschen. Die Übergabe von Daten und Befehlen erfolgt strukturiert nach einer zuvor definierten Syntax.

Die API ermöglicht es, die Programmierung zu modularisieren und dadurch zu vereinfachen. Die einzelnen über eine API angebundenen Programmteile erfüllen spezifische Funktionen und sind vom Rest der Applikation klar getrennt. Die Kommunikation von einzelnen Programmmodulen ist lediglich über die genau spezifizierte Schnittstelle möglich.

Die API definiert, in welcher Form die Informationen und Daten vom Anwendungsmodul entgegengenommen und wieder zurückgesendet werden. Um den eigentlichen Programmablauf innerhalb des Moduls kümmert sich das Application Programming Interface nicht. Im Gegensatz zu einer Binärschnittstelle findet in der API die Programmanbindung rein auf der Quelltext-Ebene statt.

Wird eine Programmierschnittstelle bereitgestellt, erfolgt dies in der Regel zusammen mit einer ausführlichen Dokumentation der einzelnen Funktionen, der genauen Syntax und der möglichen Parameter. Über die API kann auf Hardwarekomponenten, Datenbanken, einzelne Programmfunktionen oder auf Oberflächen und weitere Elemente zugegriffen werden.

Abgrenzung zwischen Benutzer- und Programmierschnittstelle

Das Application Programming Interface lässt sich von einem User Interface (Benutzerschnittstelle) exakt abgrenzen. Während das User Interface die Schnittstelle zwischen der Programmlogik und dem Anwender der Software zur Verfügung stellt, bildet das Application Programming Interface das Äquivalent für maschinenlesbaren Programmcode.

Das User Interface nimmt Daten von Benutzern entgegen, leitet diese zur Verarbeitung an die Anwendung weiter und gibt die Ergebnisse wieder an den Benutzer zurück. Das Application Programming Interface interagiert nicht mit dem Anwender, sondern verarbeitet die von einem Programmmodul entgegengenommenen Daten und überträgt die Resultate an das Modul zurück.

Vorteile durch die Verwendung von Programmierschnittstellen

Durch die konsequente Verwendung von Programmierschnittstellen ergeben sich viele Vorteile. Komplexe und sehr große Software lässt sich durch APIs modularisieren und dadurch vereinfachen. Einzelne Funktionen können in Programmmodule ausgelagert werden, wodurch sich eine saubere Gesamtstruktur ergibt.

Die Verwendung des modularen Programmcodes zusammen mit den APIs macht die Programme weniger fehleranfällig und leichter wartbar. Arbeiten einzelne Funktionen fehlerhaft, müssen lediglich die betroffenen Module und die an der API übergebenen Daten genauer geprüft werden.

Ein weiterer Vorteil einer sauber dokumentierten Programmierschnittstelle gegenüber Anwendungen ohne API ist die Möglichkeit der Auslagerung von Programmierarbeiten. Die Entwicklung einzelner Teilbereiche einer Software kann dank der Programmierschnittstelle mit geringem Aufwand an eine externe Softwarefirma oder einen freien Entwickler übertragen werden. Zudem können Drittanbieter selbst Funktionen für das System entwickeln. Dadurch steigert sich die Attraktivität und Flexibilität des Gesamtprodukts und es ergeben sich klare Wettbewerbsvorteile.

Nach außen hin unveränderte APIs steigern zudem die Langzeitstabilität eines Systems. Der eigentliche Programmcode kann beliebig geändert werden, ohne dass über die Programmierschnittstelle ausgelagerte Module davon betroffen sind. Zusatzanwendungen müssen daher nicht verändert werden. Kosten und Arbeitsaufwendungen lassen sich dank der Kontinuität der Software deutlich minimieren.

Grundsätzliche Einteilung der Programmierschnittstellen

Programmierschnittstellen können in vier verschiedene Typen unterteilt werden. Diese grundsätzlichen Typklassen sind:

  • funktionsorientierte APIs
  • dateiorientierte APIs
  • objektorientierte APIs
  • protokollorientierte APIs

Während funktionsorientierte Schnittstellen überwiegend Funktionen und deren Parameter zur Kommunikation verwenden, sprechen dateiorientierte APIs mit Hilfe von verschiedenen Dateisystemaufrufen einzelne Dateien und Dateifunktionen an. Objektorientierte Programmierschnittstellen arbeiten mit so genannten Schnittstellenzeigern und sind gegenüber rein funktionsorientierten Schnittstellen deutlich flexibler. Wesentliches Merkmal von protokollorientierten APIs ist ihre Unabhängigkeit von einem definierten Betriebssystem oder einer bestimmten Hardware.

Beispiele für häufig genutzte APIs

APIs sind in vielen Bereichen unterschiedlichster Softwareanwendungen vorzufinden. Im Webumfeld sind viele öffentliche Web-APIs verfügbar, mit denen sich Angebote in eigene Anwendungen integrieren lassen. Beispielsweise existieren APIs zu Services wie:

  • Wikipedia
  • Google Maps
  • Facebook
  • Twitter
  • PayPal
  • DHL
  • etc.

Im Web-Umfeld kommen APIs häufig bei Online-Shops und Content-Management-Systemen zum Einsatz. Es können dadurch unterschiedliche Bezahldienstleister, Online-Marktplätze, Shop-Bewertungssysteme oder Versanddienstleister und weitere Services mit wenig Aufwand standardisiert an die verschiedenen Systeme angebunden werden.

Einen Sondertyp von Web-APIs stellen die Schnittstellen zur Authentifizierung und Autorisierung dar. APIs wie beispielsweise Facebook Connect oder OpenID-Standard gestatten Usern das Einloggen auf anderen Portalen, ohne dass dort eine eigene User-Verwaltung benötigt wird. Eine einzige Benutzeridentität ist durch diese APIs für viele verschiedene Portale nutzbar.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

So passen DevOps und Sicherheit zusammen

Worauf IT-Entscheider achten müssen

So passen DevOps und Sicherheit zusammen

An agilen Methoden wie DevOps kommt heute bei der Software-Entwicklung niemand mehr vorbei. Wer dem Thema Sicherheit dabei nicht von Anfang an große Aufmerksamkeit widmet, riskiert eine Menge Geld und den Ruf seines Unternehmens. lesen

Das sind die Gewinner der IT-Awards 2019

IT-Awards 2019

Das sind die Gewinner der IT-Awards 2019

Auf der alljährlichen großen Abendgala wurden am Abend des 24. Oktober 2019 die Gewinner der IT-Awards 2019 ausgezeichnet. Die Preisverleihung der Insider-Portale feierte dabei gleichzeitig ein kleines Jubiläum. lesen

Bytecode mit WebAssembly erzeugen

Webanwendungen mit Performance nativer Apps

Bytecode mit WebAssembly erzeugen

Wer seinen Web-Apps schon immer zur Leistung nativer Desktop-Anwendungen verhelfen wollte, kann jetzt aufatmen. Ein binäres Befehlsformat namens WebAssembly übernimmt die Schwerstarbeit. lesen

Windows 10 Version 1909 ohne SDK

Entwickler arbeiten weiter mit API-Level der Version 1903

Windows 10 Version 1909 ohne SDK

Windows 10 Version 1909 ist bereit für die Veröffentlichung. Für Entwickler ist dabei wichtig zu wissen, dass die neue Version kein SDK, sprich Software Development Kit mitbringt. Trotzdem sollten sie sich natürlich mit der neuen Version auseinandersetzen. lesen

Microservices und Monolithen schließen sich nicht aus

Ergänzung zu modernen Architekturmustern

Microservices und Monolithen schließen sich nicht aus

Microservices stehen in der Gunst der Software-Entwickler zurzeit weit oben, aber sie haben auch Nachteile. Monolithische Anwendungen wiederum sind besser als ihr Ruf. Smarte Programmierer vereinen das Beste aus beiden Welten. lesen

Der Weg in die Wolke mit Web-APIs

API-Hosting als Basis einer Microservice-Architektur

Der Weg in die Wolke mit Web-APIs

Microservices gelten heute als Basis moderner Anwendungsarchitekturen. Statt einer monolithischen und schwerfälligen Software wird die gesamte Funktionalität auf überschaubare Teilsysteme verteilt. Die entstandenen Services werden dann üblicherweise über das Internet und RESTful APIs zur Verfügung gestellt. lesen

Verbessertes Testing von Mainframe-Software

Updates und OpenLegacy-Integration für Compuware Topaz

Verbessertes Testing von Mainframe-Software

Die auf Mainframe-Anwendungen ausgerichtete Testing-Lösung Topaz for Total Test steht in einer neuen Version bereit. Compuware hob in einer Ankündigung insbesondere optimierte Reportings und Dashboards sowie erweiterten Programm-Support hervor. lesen

Die vier größten Fehler bei Authentifizierungsvorgängen

Authentifizierung sicher planen

Die vier größten Fehler bei Authentifizierungsvorgängen

Jede Web- und Mobilanwendung, die von Unternehmen benutzt wird, setzt Authentifizie­rungsmethoden ein. Sie sind Dreh- und Angel­punkt der Sicherheit von Applikationen. Au­then­ti­fizie­rungs­vorgänge sichern nicht nur die Anwendungen selbst, sondern schaffen auch individuellen Zugriffsschutz für jedes Benutzer­konto. Gleich­zeitig können sie jedoch auch zu einem der gefährlichsten Einfallstore für Hacker und Cyberkriminelle werden. lesen

Läuft Go bald Java den Rang ab?

Golang für Cloud-native Entwicklung

Läuft Go bald Java den Rang ab?

Verteilte Anwendungsarchitekturen überfordern traditionelle Programmiersprachen. Entwickler von Microservices suchen händeringend nach besseren Alternativen. Kann Go die Platzhirsche ablösen? lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 44536133 / Definitionen)