Definition

Programmierschnittstelle (Application Programming Interface, API)

Was ist eine API?

Eine Anwendungsprogrammierschnittstelle (Application Programming Interface, API) ist ein Code, der es zwei Softwareprogrammen ermöglicht, miteinander zu kommunizieren. Eine API legt fest, wie ein Entwickler Dienste von einem Betriebssystem oder einer anderen Anwendung anfordern und Daten in verschiedenen Kontexten und über mehrere Kanäle freigeben soll.

Mit einer Anwendungsprogrammierschnittstelle können beliebige Daten gemeinsam genutzt werden. APIs werden durch Funktionsaufrufe (Function Calls) implementiert, die aus Verben und Substantiven bestehen; die erforderliche Syntax ist in der Dokumentation der aufzurufenden Anwendung beschrieben. Auf einer Immobilien-Website könnte eine API beispielsweise verfügbare Immobilien nach geografischen Gesichtspunkten veröffentlichen, während eine zweite API aktuelle Zinssätze liefert und eine dritte einen Hypothekenrechner anbietet.

In den Anfängen des Web 2.0 wurde das Konzept der Integration von Daten und Anwendungen aus verschiedenen Quellen als Mashup bezeichnet. Das Internet, Software für den Datenaustausch über das Internet und Cloud Computinghaben das Interesse an APIs und Diensten verstärkt.

Wie funktionieren APIs?

APIs bestehen aus zwei miteinander verbundenen Elementen:

  • einer Spezifikation, die beschreibt, wie Informationen zwischen Programmen in Form einer Verarbeitungsanforderung und einer Rückgabe der erforderlichen Daten ausgetauscht werden, und
  • eine Softwareschnittstelle, die gemäß dieser Spezifikation geschrieben und in irgendeiner Weise zur Nutzung veröffentlicht wird.

Die Software, die auf die Funktionen und Möglichkeiten der API zugreifen möchte, ruft sie auf (Call), und die Software, die die API erstellt, veröffentlicht sie (Publish).

APIs autorisieren und gewähren den Zugriff auf Daten, die von Benutzern und anderen Anwendungen angefordert werden. Die Authentifizierung des Zugriffs auf einen Dienst oder einen Teil der Funktionalität erfolgt über vordefinierte Rollen, die festlegen, wer oder welcher Dienst auf bestimmte Aktionen und Daten zugreifen kann. APIs bieten auch einen Prüfpfad, der detailliert aufzeigt, wer und was wann Zugriff auf das System hatte.

Anwendungen, die APIs aufrufen, wurden traditionell in bestimmten Programmiersprachen geschrieben. Web-APIs können über jede beliebige Programmiersprache aufgerufen werden, aber auch mit der Hypertext Markup Language(HTML) erstellte Webseiten oder Anwendungsgenerator-Tools können auf sie zugreifen.

Die gebräuchlichsten Architekturen für APIs sind Representational State Transfer (REST) und Simple Object Access Protocol (SOAP), das eine Standard-Kommunikationsprotokoll-Spezifikation für den Nachrichtenaustausch auf der Grundlage von Extensible Markup Language oder XML definiert. SOAP erfordert weniger infrastrukturbezogenen Code auf niedriger Ebene als REST. REST-APIs lassen sich jedoch leichter skalieren und neu bereitstellen, und sie sind einfacher zu implementieren und in Websites und Dienste zu integrieren. REST-APIs werden heute am häufigsten verwendet, insbesondere für Web-Interaktionen.

Abbildung 1: Die Funktionsweise eines APIs in der schematischen Darstellung.

Warum APIs für Unternehmen wichtig sind

APIs haben die Qualität und Bereitstellung von Software und Diensten verbessert. Benutzerdefinierte Software, die für einen bestimmten Zweck entwickelt wurde, wird oft so geschrieben, dass sie auf APIs verweist, die Funktionen bieten, die in einer Vielzahl von Kontexten nützlich sind. Dies verringert die Entwicklungszeit, die Kosten und das Risiko von Fehlern.

Die wachsende Zahl von Webdiensten, die Cloud-Anbieter über APIs zur Verfügung stellen, hat auch die Entwicklung von Cloud-spezifischen AnwendungenInternet-of-Things-Bemühungen und Anwendungen zur Unterstützung von Mobilgeräten und Nutzern gefördert.

APIs fügen eine digitale Ebene hinzu, über die die Daten und Unternehmensressourcen eines Unternehmens mit der erforderlichen Governance und Sicherheit präsentiert werden. Dieser Ansatz verbessert die Interaktion mit Kunden, Mitarbeitern und Partnern. Mehr Funktionalität und ein größerer Umfang an Diensten erhöhen den Wert für die Nutzer und verbessern das Kundenerlebnis. Zum Beispiel antizipiert die bisherige Website die Bedürfnisse eines Kunden bei der Suche nach Immobilien.

APIs eröffnen Unternehmen auch neue Möglichkeiten der Monetarisierung, zum Beispiel die Produktisierung von Daten mit maßgeschneiderten Paketen und Plänen für Geschäftspartner.

Was sind die Vorteile der Verwendung von APIs?

APIs sind ein Satz von Regeln. Sie standardisieren die Art und Weise, wie Entwickler Anwendungscode schreiben, und verbessern so die internen Softwareentwicklungsprozesse eines Unternehmens.

Durch die Verwendung gleicher Regeln und Formate wird der Code gestrafft und transparenter gemacht. Die Standardisierung erleichtert auch die Zusammenarbeit zwischen Entwicklern, die Softwarekomponenten für die Integration mit APIs erstellen. Dies wiederum erleichtert die Entwicklung von Funktionen und verkürzt die Zeit bis zur Marktreife.

Öffentliche APIs und solche, die mit Partnern gemeinsam genutzt werden, ermöglichen es einer Organisation, Folgendes zu tun:

  • Sichere Kontrolle und Verwaltung des Zugriffs von Benutzern und Systemen auf Daten und Servicefunktionen;
  • die Nutzung der Daten durch Dritte – auch in begrenztem Umfang – zu ermöglichen, was den Bekanntheitsgrad des Unternehmens erhöht;
  • seine Kundendatenbank zu erweitern und seine Konversionsrate zu erhöhen, indem es seine Dienste mit anderen vertrauenswürdigen Marken abstimmt; und
  • seine APIs so zu monetarisieren, dass sie zu einer Einnahmequelle werden. Dies ist eine gängige Taktik für Online-Zahlungs-Gateways. Unternehmen, die beispielsweise die APIs von PayPal nutzen, sind bereit, für die Nutzung eines vertrauenswürdigen Zahlungssystems zu zahlen.

Herausforderungen bei der Verwendung von APIs

Es gibt Herausforderungen und Einschränkungen im Zusammenhang mit APIs, darunter die folgenden:

  • Die Entwicklung von APIs kann komplex und kostspielig sein, wenn es um die Integration mit den Systemen und Daten geht, die sie darstellen. Bestimmte Arten von Funktionen lassen sich möglicherweise besser mit einem Ansatz wie der robotergestützten Prozessautomatisierung lösen.
  • Da sie auf Standardisierung beruhen, sind APIs auch anfällig für Cyberangriffe im Zusammenhang mit der Offenlegung von Daten, Benutzerauthentifizierung, Autorisierung auf Objekt- und Funktionsebene, Massenzuweisung und Injektionsangriffe.
  • APIs werden häufig aktualisiert, was es schwierig macht, die Dokumentation auf dem neuesten Stand zu halten. Eine ordnungsgemäße Verwaltung des API-Lebenszyklus und die Abschaffung alter APIs können diese Herausforderung entschärfen.
  • APIs müssen getestet werden, um sicherzustellen, dass sie wie gewünscht funktionieren. Der beste Ansatz ist die Kodifizierung von Testverfahren.
Abbildung 2: APIs sind leider auch Schwachstellen, die gern und häufig von Angreifern ausgenutzt werden.
Abbildung 2: APIs sind leider auch Schwachstellen, die gern und häufig von Angreifern ausgenutzt werden.

Arten von APIs

Es gibt vier Arten von APIs: private, öffentliche, Partner- und zusammengesetzte (Composite) APIs.

  • Private APIs oder interne APIs werden intern veröffentlicht und von den Entwicklern des Unternehmens zur Verbesserung der eigenen Produkte und Dienste verwendet. Private APIs sind für Dritte nicht zugänglich.
  • Öffentliche APIs (Public) oder offene APIs werden frei veröffentlicht und können von jedermann genutzt werden. Für diese APIs gibt es keine Beschränkungen.
  • Partner-APIs können nur von bestimmten Parteien verwendet werden, mit denen ein Unternehmen die gemeinsame Nutzung von Daten vereinbart hat. Diese APIs werden in Geschäftsbeziehungen verwendet, häufig zur Integration von Software zwischen Partnerunternehmen.
  • Zusammengesetzte APIs (Composite) kombinieren mehrere APIs, um verwandte oder voneinander abhängige Aufgaben zu lösen. Sie verbessern oft die Geschwindigkeit und Leistung im Vergleich zu einzelnen APIs.

APIs werden zudem als lokale, Web-, Remote- und Programm-APIs klassifiziert.

  • Lokale APIs bieten Betriebssystem- oder Middleware-Dienste für Anwendungen. Beispiele für lokale APIs sind die .NET-APIs von Microsoft, die Telefonie-API für Sprachanwendungen und APIs für den Datenbankzugriff.
  • Web-APIs sind so konzipiert, dass sie Ressourcen wie HTML-Seiten darstellen und über ein einfaches Hypertext Transfer Protocol (HTTP) aufgerufen werden. Jede Web-URL aktiviert eine Web-API. Web-APIs werden oft als RESTful-APIs bezeichnet, weil der Herausgeber von REST-Schnittstellen keine Daten zwischen den Anfragen intern speichert. So können Anfragen von vielen Benutzern wie im Internet miteinander vermischt werden.
  • Remote APIs interagieren über ein Kommunikationsnetz, um Ressourcen außerhalb des anfordernden Computers zu manipulieren. Dies ist eine breitere Kategorie, die Web-APIs einschließt, aber nicht auf sie beschränkt ist. Remote-APIs müssen nicht auf der Grundlage von Webstandards entwickelt werden, auch wenn dies bei vielen der Fall ist. Die Java Database Connectivity API und die Java Remote Method Invocation API sind zwei Beispiele für Remote APIs.
  • Programm-APIs basieren auf der RPC-Technologie (Remote Procedure Call), die eine entfernte Programmkomponente für den Rest der Software als lokal erscheinen lässt. APIs der dienstorientierten Architektur, wie zum Beispiel die APIs der WS-Serie von Microsoft, sind Programm-APIs.

Warum API-Design wichtig ist

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

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

Starke Sicherheit ist ebenfalls ein wichtiger Aspekt des API-Designs. Die Ausnutzung von falsch konfigurierten APIs ist eine gängige Praxis für Cyberangreifer. APIs sind ein Tor, das die Systeme und Daten eines Unternehmens für interne und externe Benutzer zugänglich macht. Jede Kompromittierung kann zu weitreichenden und ernsthaften Sicherheitsproblemen führen.

Was sind Beispiele für APIs?

Betriebssysteme und Middleware-Tools stellen ihre Funktionen über Sammlungen von APIs zur Verfügung, die gewöhnlich als Toolkits bezeichnet werden. Zwei verschiedene Sätze von Tools, die dieselben API-Spezifikationen unterstützen, sind für Programmierer austauschbar und bilden die Grundlage für Kompatibilitäts- und Interoperabilitätsansprüche. Die .NET-API-Spezifikationen von Microsoft sind beispielsweise die Grundlage für ein quelloffenes, Linux-äquivalentes Middleware-Paket, das jetzt von Microsoft unterstützt wird.

Viele Softwareprodukte und -tools bieten Funktionen über APIs, von DevOps-Tools wie DockerJenkins und GitLab bis hin zu Unternehmensplattformen wie Microsoft SharePoint. Insbesondere die sozialen Medien nutzen offene APIs, um Funktionen von Drittanbietern zu ermöglichen, zum Beispiel die Erstellung von Newsfeeds und die Freigabe von Fotos.

Das Internet ist die Hauptantriebskraft für APIs. Unternehmen wie Facebook, Google und Yahoo veröffentlichen APIs, um Entwickler von Drittanbietern zu ermutigen, auf ihren Funktionen aufzubauen. Diese APIs haben alles ermöglicht, von neuen Internetfunktionen, die die Websites anderer Dienste durchsuchen, bis hin zu Anwendungen für mobile Geräte, die einen einfachen Zugang zu den Ressourcen von Webanwendungen bieten. Neue Funktionen wie die Bereitstellung von Inhalten, Augmented Reality und neuartige Anwendungen der Wearable Technology werden zum großen Teil durch diese APIs geschaffen.

Abbildung 3: APIs schaffen in fast jeder Branche, in der Unternehmen, Partner und Anbieter Daten austauschen, einen Mehrwert.
Abbildung 3: APIs schaffen in fast jeder Branche, in der Unternehmen, Partner und Anbieter Daten austauschen, einen Mehrwert.

API-Trends

Die Allgegenwart des Internets, die zunehmende Nutzung von Cloud Computing und der Wechsel von monolithischen Anwendungen zu Microservices haben zu einer verstärkten Nutzung von APIs geführt. Zu den Trends im Zusammenhang mit APIs gehören die folgenden:

REST und das Web. Web-API-Aufrufe können von jeder Programmiersprache aus erfolgen, aber auch mit HTML erstellte Webseiten oder Anwendungsgenerator-Tools können sie durchführen. Die zunehmende Bedeutung des Internets und der Cloud im täglichen Leben und in der Geschäftswelt hat die Verwendung von APIs und einfachen Programmierwerkzeugen oder sogar ganz ohne Programmierung für den API-Zugang erweitert.

Sowohl REST als auch SOAP können Cloud-Dienste aufrufen und eine Verbindung zu ihnen herstellen, sie verwalten und mit ihnen interagieren. REST wird zunehmend für Web-APIs bevorzugt, da es weniger Bandbreite benötigt und mehr Optionen für Programmiersprachen wie JavaScript und Python bietet. Große Websites wie AmazonGoogle, LinkedIn und X (Twitter) verwenden RESTful-APIs.

APIs und die Cloud. Cloud Computing bietet neue Möglichkeiten, Software in wiederverwendbare Komponenten zu unterteilen, Komponenten mit Anfragen zu verbinden und die Anzahl der Softwarekopien je nach Bedarf zu skalieren.

Diese Cloud-Funktionen haben den Schwerpunkt von APIs von einfachen RPC-basierten programmiererzentrierten Modellen zu RESTful webzentrierten Modellen und sogar zu so genannten funktionalen Programmier- oder Lambda-Modellen von Diensten verlagert, die in der Cloud sofort nach Bedarf skaliert werden können.

APIs as Service. Der Trend, APIs als allgemeine Ressourcen zu betrachten, hat sich geändert. Viele Anwendungen und Benutzer nutzen APIs als allgemeines Tool, aber sie werden auch als Dienste betrachtet und erfordern normalerweise eine kontrollierte Entwicklung und Bereitstellung.

SOA und Microservices sind Beispiele für Service-APIs. Dienste sind stark nachgefragt bei APIs, so dass es möglich ist, dass in Zukunft alle APIs als Dienste angesehen werden.

Künstliche Intelligenz in APIs. KI und maschinelles Lernen werden zunehmend eingesetzt, um automatisch Dokumentationen zu erstellen und API-Nutzungstrends zu überwachen.

Bereitstellen und Verwaltung von APIs

Das Unternehmen, das die API veröffentlicht, kontrolliert alle Aspekte ihres Designs und ihrer Nutzung, einschließlich Sicherheit, Zuverlässigkeit und Gebührenerhebung für die Nutzung. Es kontrolliert auch das Hinzufügen von Funktionen, unabhängig davon, ob sie vom Herausgeber oder von Dritten entwickelt wurden. Das bedeutet, dass das Unternehmen die API-Leistung im Rahmen seiner Nutzungsbedingungen aufrechterhalten muss, so wie es dies bei jeder Anwendung oder jedem Dienst tun würde.

Im Folgenden werden die wichtigsten Aspekte der Veröffentlichung und Verwaltung von APIs erläutert:

API-Tests. Wie jede Software müssen auch APIs getestet werden. Dadurch wird die veröffentlichte API anhand der Spezifikationen validiert, die die Benutzer zur Formatierung ihrer Anfragen verwenden. API-Tests stellen auch Folgendes sicher:

  • Die erwartete Funktionstüchtigkeit der Anwendungsendpunkte und Funktionen zur gemeinsamen Nutzung von Daten.
  • Die Datenfeeds der Partner senden die erwarteten Daten, wie, wann und wohin sie erwartet werden.
  • Der Test verifiziert, dass Datenmüll nicht in eine Datenbank gelangt und so Anwendungsprobleme oder Datenverfälschungen verursacht.
  • Die Funktionstüchtigkeit der Anwendung auf allen Plattformen, einschließlich Desktop, Web und Mobile.

Das Testen von APIs erfolgt in der Regel im Rahmen der Verwaltung des Anwendungslebenszyklus, sowohl für die Software, die die API veröffentlicht, als auch für die gesamte Software, die sie verwendet. APIs müssen auch in ihrer veröffentlichten Form getestet werden, um sicherzustellen, dass auf sie ordnungsgemäß zugegriffen werden kann.

API-Verwaltung. Die API-Verwaltung bezieht sich auf die Aktivitäten, die mit der Veröffentlichung einer API zur Nutzung verbunden sind. Die Verwaltung ermöglicht es den Benutzern, die API und ihre Spezifikationen zu finden und den Zugriff darauf auf der Grundlage der vom Eigentümer definierten Berechtigungen oder Richtlinien zu regeln.

Abbildung 4: API-Managementplattformen helfen Unternehmen dabei, ihre APIs besser zu verwalten, von deren sie immer abhängiger werden.
Abbildung 4: API-Managementplattformen helfen Unternehmen dabei, ihre APIs besser zu verwalten, von deren sie immer abhängiger werden.

Das API-Management hat sich in dem Maße durchgesetzt, in dem Unternehmen immer mehr von ihnen abhängig sind, immer mehr von ihnen einsetzen und sich mit den komplexen Verwaltungsaufgaben auseinandersetzen, die sie mit sich bringen. Unternehmen haben unterschiedliche Verwaltungsanforderungen, die jedoch in der Regel grundlegende Funktionen wie Sicherheit, Governance, Analyse und Versionskontrolle umfassen.

APIs erfordern eine ausführliche Dokumentation, ein hohes Maß an Sicherheit, umfassende Tests, eine routinemäßige Versionskontrolle und hohe Zuverlässigkeit. Um diese Anforderungen zu erfüllen, verwenden Unternehmen API-Verwaltungssoftware, entweder als kombinierte Plattform oder mit einzelnen Tools. Diese Tools umfassen in der Regel mehrere Kernkomponenten: ein Entwicklerportal, Lebenszyklusmanagement, einen Richtlinienmanager, Analysefunktionen und ein API Gateway.

API-Endpunkte und Sicherheit. API-Endpunkte sind die Punkte, an denen Client und Server kommunizieren und an denen die API Ressourcenanfragen erhält. In der Regel handelt es sich um eine URL, die vom Server bereitgestellt wird und anderen Systemen die Verbindung zu den Endpunkten ermöglicht. Sie fungieren als Einstiegspunkte in das Unternehmensnetzwerk. An den Endpunkten interagiert der Code eines Entwicklers mit dem Code und den Daten eines Unternehmens.

API-Endpunkte sind attraktive Ziele für Angreifer und müssen geschützt werden. Einige Sicherheitsmaßnahmen lauten wie folgt:

  • Verwenden Sie Ratenbegrenzungen, um Bots und verteilte Denial-of-Service-Bedrohungen abzuwehren.
  • Validieren Sie Eingaben, um sicherzustellen, dass korrekte Daten eingehen und Injektionsangriffe verhindert werden.
  • Speichern Sie Passwörter als asymmetrische Hash-Werte.
Diese Definition wurde zuletzt im September 2024 aktualisiert

Erfahren Sie mehr über Cloud Computing