Definition

Programmierschnittstelle (Application Programming Interface, API)

Eine Programmierschnittstelle (oder Anwendungsschnittstelle), häufig auch nur kurz API (Application Programming Interface) ist Code, der es zwei Softwareprogrammen ermöglicht, miteinander zu kommunizieren.

Eine API definiert die korrekte Art und Weise, wie ein Entwickler Dienste von einem Betriebssystem (OS) oder einer anderen Anwendung anfordert und Daten in verschiedenen Kontexten und über mehrere Kanäle ausgibt. In den frühen Tagen des Web 2.0 wurde das Konzept der Integration von Daten und Anwendungen aus verschiedenen Quellen als Mashup bezeichnet.

Beliebige Daten können mit einer Programmierschnittstelle gemeinsam genutzt werden. APIs werden durch Funktionsaufrufe (Function Calls) implementiert, die aus Verben und Substantiven bestehen. Die erforderliche Syntax ist in der Dokumentation der aufgerufenen Anwendung beschrieben. Auf einer Immobilienwebsite kann beispielsweise eine API verwendet werden, um verfügbare Immobilienobjekte nach Standort zu veröffentlichen, während eine zweite API dem Besucher die aktuellen Zinssätze zur Verfügung stellt und eine dritte API einen Hypothekenrechner integriert.

Die Veröffentlichung von Daten mit einer API kann die Kundenerfahrung verbessern, da sie eine größere Funktionalität und einen größeren Leistungsumfang innerhalb einer einzigen Anwendung oder einer anderen digitalen Immobilie bietet. Indem das Unternehmen, das die Website veröffentlicht, die Bedürfnisse des Kunden im Zusammenhang mit der Suche nach Immobilien vorwegnimmt, erhöht es nicht nur den Wert, den es den Nutzern bietet, sondern eröffnet auch Möglichkeiten für neue Geschäftspartnerschaften mit verwandten Dienstleistern.

Wie APIs funktionieren

APIs bestehen aus zwei miteinander verbundenen Elementen. Das erste ist eine Spezifikation, die beschreibt, wie Informationen zwischen Programmen ausgetauscht werden, und zwar in Form einer Verarbeitungsanfrage und der Rückgabe der erforderlichen Daten. Das zweite ist eine Softwareschnittstelle, die nach dieser Spezifikation geschrieben und in irgendeiner Weise zur Verwendung veröffentlicht wird.

Die Software, die auf die Funktionen und Fähigkeiten der API zugreifen will, soll sie aufrufen, und die Software, die die API erstellt, soll sie veröffentlichen.

Drei grundlegende Arten von APIs

APIs haben drei Grundformen: Private, Public und Partner.

Private APIs (interne APIs) werden intern veröffentlicht und von den Entwicklern des Unternehmens zur Verbesserung der eigenen Produkte und Dienstleistungen verwendet. Private APIs werden nicht an Dritte weitergegeben.

Public APIs (offene oder öffentliche APIs) werden öffentlich zur Verfügung gestellt und können von jedem Dritten verwendet werden. Es gibt keine Einschränkungen für diese APIs.

Partner APIs (eingeschränkte APIs) können nur von bestimmten Parteien verwendet werden, mit denen das Unternehmen die gemeinsame Nutzung von Daten vereinbart hat. Partner APIs werden im Rahmen von Geschäftsbeziehungen verwendet, häufig zur Integration von Software zwischen Partnerunternehmen.

Arten von APIs
Abbildung 1: So unterscheiden sich die drei Arten von APIs.

APIs können außerdem als lokale, Web- oder Programm-APIs klassifiziert werden:

Lokale APIs sind die ursprüngliche Form, von der der Name stammt. Sie bieten Betriebssystem- oder Middleware-Dienste für Anwendungsprogramme an. Die .NET-APIs von Microsoft, die TAPI (Telephony API) für Sprachanwendungen und Database Access APIs (Datenbankzugriffs-APIs) sind Beispiele für lokale APIs.

Web-APIs sind so konzipiert, dass sie weit verbreitete Ressourcen wie HTML-Seiten darstellen und über ein einfaches HTTP-Protokoll aufgerufen werden können.  Jede Web-URL aktiviert eine Web-API. Web-APIs werden oft als Representational State Transfer (REST) oder RESTful API bezeichnet, da der Herausgeber von REST-Schnittstellen zwischen den Anfragen keine Daten intern speichert. Dadurch können die Anfragen vieler Benutzer wie im Internet vermischt werden.

Programm-APIs basieren auf der Remote Procedure Call (RPC) -Technologie, die eine entfernte Programmkomponente für den Rest der Software als lokal erscheinen lässt. Serviceorientierte-Architektur-APIs (SOA), wie zum Beispiel die APIs der Web Services von Microsoft, sind Programm-APIs.

Warum das API-Design wichtig ist

Traditionell müssen die Anwendungen, die APIs veröffentlichen, in einer Programmiersprache geschrieben werden, doch da APIs zunehmend verallgemeinert werden, ist eine zusätzliche Validierung der Struktur einer API wichtig.

Ein gutes API-Design ist entscheidend für die erfolgreiche Nutzung einer API, und Softwarearchitekten verbringen viel Zeit damit, alle möglichen Anwendungen einer API und die logischste Art und Weise ihrer Nutzung zu überprüfen.

Die Datenstrukturen und Parameterwerte sind von besonderer Bedeutung, da sie zwischen dem Aufrufer einer API und ihrem Herausgeber übereinstimmen müssen.

Vorteile von APIs

Die Verwendung von APIs hat mehrere Vorteile. Da es sich bei APIs im Wesentlichen um eine Reihe von Regeln handelt, können private APIs die internen Entwicklungsprozesse verbessern, indem sie die Art und Weise standardisieren, wie Entwickler Softwarecode schreiben. Die Verwendung derselben Regeln und Formate kann den Code rationeller und transparenter machen. Die Standardisierung erleichtert auch die Zusammenarbeit zwischen Entwicklern, die Softwarekomponenten mit der Absicht erstellen, sie in APIs zu integrieren. Dies wiederum kann die Entwicklung von Funktionen unterstützen und die Zeit bis zur Markteinführung verkürzen.

Public und Partner APIs bieten eine Vielzahl von Geschäftsvorteilen. Indem sie es Dritten ermöglichen, ihre Daten zu nutzen (sogar in einem begrenzten Sinne, wie bei den Partner APIs), erhöhen Unternehmen ihre Markenbekanntheit. Unternehmen können ihre Kundendatenbank erweitern und sogar ihre Konversionsrate erhöhen, indem sie ihre Dienstleistungen mit anderen vertrauenswürdigen Marken abstimmen.

Unternehmen können ihre APIs auch monetarisieren, so dass sie zu einer Einnahmequelle für sich selbst werden. Dies ist eine übliche Taktik für Online-Zahlungs-Gateways wie PayPal. Unternehmen, die die APIs von PayPal verwenden, sind bereit, für die Möglichkeit zu zahlen, ein vertrauenswürdiges Zahlungssystem zu nutzen.

Warum APIs für Unternehmen wichtig sind

Das Web, Software zum Informationsaustausch über das Internet und Cloud Computing haben zusammen das Interesse an APIs im Allgemeinen und für Services im Besonderen erhöht.

Software, die einst für einen bestimmten Zweck entwickelt wurde, wird heute oft mit Verweisen auf APIs geschrieben, die allgemein nützliche Funktionen bieten, die Entwicklungszeit und -kosten reduzieren und das Fehlerrisiko verringern.

APIs haben die Softwarequalität im letzten Jahrzehnt stetig verbessert, und die wachsende Zahl von Webdiensten, die von Cloud-Anbietern über APIs bereitgestellt werden, fördert auch die Entwicklung von Cloud-, IoT- (Internet of Things, Internet der Dinge) und mobilen Anwendungen.

REST und das Web

Obwohl Anwendungen, die APIs aufrufen, traditionell in bestimmten Programmiersprachen geschrieben wurden, ändern das Internet und die Cloud dies. Web-APIs können über jede beliebige Programmiersprache aufgerufen werden, aber auch über Webseiten, die in HTML oder mit Softwaregenerierungs-Tools erstellt wurden.

Die zunehmende Rolle, die das Web in unserem Leben und in unseren Geschäftsaktivitäten spielt, hat zu einer Explosion des REST-Modells und zur Verwendung sehr einfacher Programmiermodelle für den API-Zugang geführt.

API-Beispiele in der Entwickler-Community

Betriebssysteme und Middleware-Tools stellen ihre Funktionen durch Sammlungen von APIs, die gewöhnlich als Toolkits bezeichnet werden, zur Verfügung. Zwei verschiedene Sätze von Tools, die dieselben API-Spezifikationen unterstützen, sind für Programmierer austauschbar, was die Grundlage für Kompatibilitäts- und Interoperabilitätsansprüche bildet. Die .NET-API-Spezifikationen sind zum Beispiel die Grundlage für ein Open Source Linux-Äquivalent, das mittlerweile von Microsoft unterstützt wird.

Das Internet ist derzeit der Hauptantrieb für APIs, und Unternehmen wie Facebook, Google und Yahoo veröffentlichen APIs, um Entwickler zu ermutigen, auf deren Fähigkeiten aufzubauen. Neue Funktionen wie die Bereitstellung von Inhalten, Augmented Reality und neuartige Anwendungen für Wearables werden zum großen Teil durch APIs möglich.

API-Strategie
Abbildung 2: Die Entwicklung und das Design von APIs muss gut durchdacht sein.

APIs-Trends in der Cloud

Cloud Computing führt neue Möglichkeiten ein, Software in wiederverwendbare Komponenten zu unterteilen, Komponenten mit Anfragen zu verbinden und die Anzahl der Softwarekopien bei Bedarf zu skalieren.

Diese Cloud-Fähigkeiten haben bereits dazu geführt, den Schwerpunkt der APIs von einfachen programmiererzentrierten RPC-Modellen auf webzentrierte RESTful-Modelle sowie auf die sogenannte funktionalen Programmierung und Lambda-Dienste zu verlagern, die sich in der Cloud unmittelbar nach Bedarf skalieren lassen.

APIs als Services

Der Trend, APIs als allgemeine Ressourcen zu betrachten, hat die Terminologie verändert. Während von APIs erwartet wird, dass sie sich von vielen Anwendungen und Benutzern als allgemeines Werkzeug verwenden lassen, werden sie als Services bezeichnet und erfordern somit eine kontrollierte Entwicklung und Bereitstellung.

SOA und Microservices sind Beispiele für Service-APIs. Services sind der aktuelle Trend bei APIs, so dass einige Entwickler bereits davon ausgehen, dass alle APIs in Zukunft als Services angesehen werden.

API-Tests

Wie jede Software müssen APIs getestet werden. Der Zweck des Testens ist die Validierung der veröffentlichten APIs anhand der Spezifikationen, die die Benutzer dieser APIs bei der Formatierung ihrer Anfragen verwenden.

Diese Tests werden normalerweise als Teil des Application Lifecycle Management (ALM) durchgeführt, sowohl für die Software, die die APIs veröffentlicht, als auch für die gesamte Software, die sie verwendet. Die APIs müssen auch in ihrer veröffentlichten Form getestet werden, um sicherzustellen, dass auf sie ordnungsgemäß zugegriffen werden kann.

API-Management

API-Management ist ein Schritt über das hinaus, was normalerweise mit der Softwareentwicklung verbunden ist. Es ist die Gesamtheit der Aktivitäten, die mit der Veröffentlichung der API verbunden sind, API-Management ermöglicht es Benutzern, die API und ihre Spezifikationen zu finden und den Zugriff auf die API auf der Grundlage von vom Eigentümer definierten Berechtigungen oder Richtlinien zu regeln.

Sicherheit und Verwaltung der API fallen in den Bereich des API-Management. Zu den für das API-Management verwendeten Tools gehören API-Kataloge oder -Verzeichnisse.

Diese Definition wurde zuletzt im April 2020 aktualisiert

Erfahren Sie mehr über Cloud Computing

ComputerWeekly.de
Close