Leigh Prather - stock.adobe.com

Welche Arten von APIs gibt es und wie unterscheiden sie sich?

Unternehmen verlassen sich bei der Interaktion mit Kunden und Partnern zunehmend auf APIs. Alles beginnt damit, zu wissen, welche Art von API für deren Bedürfnisse geeignet ist.

Eine API oder Programmierschnittstelle ( Application Programming Interface) ist ein leistungsfähiges und vielseitiges Mittel zur Verbindung verschiedener und unterschiedlicher Softwareanwendungen.

APIs ermöglichen die Integration und Interoperabilität einer Vielzahl von Softwareprodukten, die nicht miteinander in Beziehung stehen, mit anderer Software und Daten. APIs ermöglichen es den Entwicklern auch, die Software um neue Funktionen zu erweitern, indem sie eine Vielzahl von APIs anderer Entwickler nutzen.

APIs sind jedoch nicht alle gleich. Entwickler können mit einer Reihe von API-Typen, -Protokollen und -Architekturen arbeiten, die den einzigartigen Anforderungen verschiedener Anwendungen und Unternehmen entsprechen.

Vier Arten von Web-APIs

APIs sind weithin akzeptiert und werden in Webanwendungen verwendet. Es gibt vier Haupttypen von APIs, die üblicherweise in webbasierten Anwendungen verwendet werden: öffentlich, Partner, privat und zusammengesetzt. In diesem Zusammenhang gibt der API-Typ den beabsichtigten Anwendungsbereich an.

Public API. Eine Public API ist offen und kann von jedem externen Entwickler oder Unternehmen genutzt werden. Ein Unternehmen, das eine Geschäftsstrategie verfolgt, die die gemeinsame Nutzung seiner Anwendungen und Daten mit anderen Unternehmen vorsieht, entwickelt eine offene API und bietet diese an.

Public APIs erfordern in der Regel eine moderate Authentifizierung und Autorisierung. Ein Unternehmen kann auch versuchen, die API zu monetarisieren, indem es für die Nutzung der Public API eine Gebühr pro Aufruf erhebt.

Partner-API. Eine Partner-API, die nur speziell ausgewählten und autorisierten externen Entwicklern oder API-Kunden zur Verfügung steht, ist ein Mittel zur Erleichterung von Business-to-Business-Aktivitäten. Wenn ein Unternehmen beispielsweise seine Kundendaten selektiv mit externen CRM-Firmen teilen möchte, kann eine Partner-API das interne Kundendatensystem mit diesen externen Parteien verbinden – eine andere API-Nutzung ist nicht gestattet.

Partner haben klare Rechte und Lizenzen für den Zugriff auf solche APIs. Aus diesem Grund verfügen Partner-APIs in der Regel über strengere Authentifizierungs-, Autorisierungs- und Sicherheitsmechanismen. Unternehmen machen solche APIs in der Regel auch nicht direkt zu Geld; die Partner werden für ihre Dienste und nicht über die API-Nutzung bezahlt.

Interne API. Eine interne (oder private) API ist nur für die Verwendung innerhalb des Unternehmens vorgesehen, um Systeme und Daten innerhalb des Unternehmens zu verbinden. Eine interne API kann zum Beispiel die Gehaltsabrechnungs- und HR-Systeme eines Unternehmens verbinden.

Interne APIs weisen traditionell eine schwache oder gar keine Sicherheit und Authentifizierung auf, da die APIs für den internen Gebrauch bestimmt sind und derartige Sicherheitsstufen durch andere Richtlinien als gegeben vorausgesetzt werden. Dies ändert sich jedoch, da ein größeres Bewusstsein für Bedrohungen und Anforderungen zur Einhaltung von Vorschriften die API-Strategie eines Unternehmens zunehmend beeinflussen.

Composite API. Composite (zusammengesetzte) APIs kombinieren im Allgemeinen zwei oder mehr APIs, um eine Abfolge von verwandten oder voneinander abhängigen Vorgängen zu erstellen. Diese APIs können vorteilhaft sein, um komplexe oder eng miteinander verbundene API-Verhaltensweisen zu adressieren, und können manchmal die Geschwindigkeit und Leistung gegenüber einzelnen APIs verbessern.

API-Protokolle und -Architekturen

APIs tauschen Befehle und Daten aus, und dies erfordert klare Protokolle und Architekturen: das sind die Regeln, Strukturen und Einschränkungen, die den Betrieb einer API bestimmen. Es gibt drei Kategorien von API-Protokollen oder -Architekturen: REST, RPC und SOAP. Diese können als Formate bezeichnet werden, die jeweils einzigartige Merkmale und Kompromisse aufweisen und für unterschiedliche Zwecke eingesetzt werden.

REST. Die REST-Architektur (Representational State Transfer) ist vielleicht der beliebteste Ansatz für die Erstellung von APIs. REST basiert auf einem Client/Server-Ansatz, der die vorderen und hinteren Enden der API voneinander trennt und erhebliche Flexibilität bei der Entwicklung und Implementierung bietet. REST ist zustandslos (stateless), was bedeutet, dass die API keine Daten oder keinen Status zwischen den Anfragen speichert. REST unterstützt die Zwischenspeicherung von Antworten für langsame oder nicht zeitempfindliche APIs. REST APIs, in der Regel als RESTful APIs bezeichnet, können auch direkt kommunizieren oder über Zwischensysteme wie API-Gateways und Load Balancer arbeiten.

RPC. Das RPC-Protokoll (Remote Procedural Call) ist ein einfaches Mittel, um mehrere Parameter zu senden und Ergebnisse zu empfangen. RPC APIs rufen ausführbare Aktionen oder Prozesse auf, während REST APIs hauptsächlich Daten oder Ressourcen wie Dokumente austauschen. RPC kann zwei verschiedene Sprachen, JSON und XML, für die Kodierung verwenden; diese APIs werden JSON-RPC beziehungsweise XML RPC genannt.

SOAP. Das Simple Object Access Protocol (SOAP) ist ein Messaging-Standard, der vom World Wide Web Consortium definiert wurde und allgemein zur Erstellung von Web-APIs verwendet wird, in der Regel mit XML. SOAP unterstützt eine breite Palette von Kommunikationsprotokollen, die im Internet zu finden sind, wie HTTP, SMTP und TCP. SOAP ist außerdem erweiterbar und stilunabhängig, was es Entwicklern ermöglicht, SOAP APIs auf unterschiedliche Weise zu schreiben und auf einfache Weise Merkmale und Funktionen hinzuzufügen. Der SOAP-Ansatz legt fest, wie die SOAP-Nachricht verarbeitet wird, welche Funktionen und Module enthalten sind, welche Kommunikationsprotokolle unterstützt werden und wie die SOAP-Nachrichten aufgebaut sind.

Verglichen mit der Flexibilität von REST ist SOAP ein stark strukturierter, streng kontrollierter und klar definierter Standard. SOAP-Nachrichten können beispielsweise bis zu vier Komponenten enthalten, darunter einen Umschlag, einen Header, einen Body und einen Fault (Fehlerbehandlung).

Vergleich von API-Protokollen

Die Wahl eines API-Formats kann einen tiefgreifenden und langfristigen Einfluss auf den Erfolg und die Akzeptanz einer API haben. Unternehmen müssen das am besten geeignete Format auswählen, und zwar auf der Grundlage der Komplexität der auszutauschenden Informationen, des erforderlichen Sicherheitsniveaus für diese Informationen und der Geschwindigkeit oder Leistung, die für diesen Austausch erforderlich ist.

So kann ein einfacheres Format zwar leichter zu programmieren und zu pflegen sein, bietet aber möglicherweise nicht das Maß an Sicherheit, wie zum Beispiel Verschlüsselung, das ein Unternehmen benötigt. Komplexere Formate können diese Sicherheit bieten, erfordern aber einen größeren Lernaufwand für die Anwender oder mehr Fehlerkorrekturen und Arbeit für die Entwickler. Der Kompromiss ist selten einfach, aber es gibt einige gemeinsame Überlegungen für die wichtigsten API-Formate.

APIs testen
Abbildung 1: Die Entwicklung von APIs erfordert auch regelmäßige Tests.

Vergleichen wir REST und SOAP. Beide Formate sind für die Verbindung von Anwendungen konzipiert und verwenden hauptsächlich HTTP-Protokolle und -Befehle wie GET, POST und DELETE. Beide können XML in Anfragen und Antworten verwenden. Allerdings ist SOAP von vornherein auf XML angewiesen, während REST auch JSON, HTML und einfachen Text verwenden kann. SOAP ist mit strengen Regeln standardisiert, während REST flexible Regeln zulässt und stattdessen von Architekturen bestimmt wird. SOAP basiert auf Remote Procedure Calls, während REST auf Ressourcen basiert.

Sowohl REST als auch SOAP tauschen also Informationen aus, allerdings auf sehr unterschiedliche Weise. SOAP wird verwendet, wenn ein Unternehmen strenge Sicherheitsvorkehrungen und klar definierte Regeln zur Unterstützung eines komplexeren Datenaustauschs und die Möglichkeit zum Aufruf von Prozeduren benötigt. Entwickler verwenden SOAP häufig für interne oder Partner-APIs.

REST wird für den schnellen Austausch von relativ einfachen Daten verwendet. REST kann auch eine größere Skalierbarkeit bieten und unterstützt große und aktive Benutzergruppen. Diese Eigenschaften machen REST zu einer beliebten Lösung für Public APIs, zum Beispiel in mobilen Anwendungen.

REST SOAP
Arbeitet mit XML, JSON, HTTP und Plain Text Arbeitet von vornherein mit XML
Lose und flexible Richtlinien basierend auf den Architekturen Strenge, klar definierte Regeln
Geringe Sicherheit Fortschrittliche Sicherheit
Funktioniert gut mit Daten Funktioniert gut mit Prozessen (Aktionen)
Braucht wenig Bandbreite und ist hoch skalierbar Braucht mehr Bandbreite bei begrenzter Skalierbarkeit

Die Diskussion darüber, wann RPC verwendet werden sollte, ist etwas einfacher. Ähnlich wie SOAP ist RPC stark strukturiert und für relativ einfache APIs gedacht, die Prozesse aufrufen können. Die Entscheidung, ob JSON oder XML verwendet werden soll, hängt wiederum vom Zweck der API, den auszutauschenden Informationstypen und dem erforderlichen Sicherheitsniveau ab.

JSON ist die einfachere Sprache, und JSON RPCs unterstützen nur den Austausch von alphanumerischen Daten (Text) mit geringer Sicherheit. XML RPC kann ein breiteres Spektrum an Daten verarbeiten, darunter Text, Bilder, Grafiken und Diagramme und vieles mehr. Daher bietet XML bessere Möglichkeiten zur Dokumentenverarbeitung und bessere Sicherheitsfunktionen als JSON. Beide Ansätze unterstützen eine Vielzahl von Programmiersprachen, darunter Python, Java und PHP.

Letztlich sind RPC-basierte APIs aufgrund ihrer begrenzten Datentypunterstützung und ihrer eingeschränkten Sicherheit eine schlechte Wahl für APIs auf Unternehmensebene. Sie können jedoch für einige interne zusammengesetzte APIs geeignet sein. JSON RPC APIs können beispielsweise Aufrufe tätigen, ohne eine Antwort abzuwarten, und unterstützen mehrere gleichzeitige Aufrufe, die asynchron verarbeitet werden können.

Die Auswahl der richtigen API

Unabhängig davon, ob eine bestehende API zur Verwendung in einem Softwareprojekt ausgewählt oder eine neue API von Grund auf erstellt wird, gibt es mehrere wichtige Faktoren, die Entwickler berücksichtigen oder einbeziehen sollten, zum Beispiel:

  • Eine klare und vollständige Dokumentation. APIs sind Software, und wie jede Software benötigen sie eine umfassende Dokumentation, die Entwicklern Anleitungen, Verwendungshinweise und Anwendungsbeispiele bietet, damit sie die API schnell und erfolgreich einsetzen können.
  • Einfache Einführung. Halten Sie die API einfach, richten Sie eine einfache Methode zum Erwerb der API ein – zum Beispiel Downloads und Kontoanmeldungen – und sorgen Sie für einen soliden und sachkundigen API-Support, der alle Fragen der Entwickler beantworten kann. Andernfalls wird die API zu schwer oder unangenehm zu integrieren sein, und Entwickler werden sie zugunsten anderer APIs, die leichter zu übernehmen sind, übergehen.
  • Benutzerfreundlichkeit. Eine gute API ist einfach zu bedienen und verfügt über sinnvolle und intuitive Aufrufstrukturen. Selbst die leistungsfähigste und umfassendste API wird ignoriert, wenn sie umständliche und inkonsistente Aufrufe und Antworten verwendet. Einfachheit, Konsistenz, Klarheit und Abwärtskompatibilität sind die Kennzeichen einer guten API.
  • Stabilität und Zuverlässigkeit. Gute APIs werden wie jede andere Software entwickelt, was umfassende Tests auf Fehler und klare Metriken für Skalierbarkeit und Leistung einschließen sollte, zum Beispiel wie viele Client-Server-Aufrufe pro Sekunde die API verarbeiten kann und andere relevante Faktoren. Fehlerhafte APIs mit inkonsistenter oder unzuverlässiger Leistung werden von den Entwicklern schnell aufgegeben. APIs, die über Drittanbieter genutzt werden, müssen hochverfügbar und robust sein.
  • Sicherheit. APIs müssen die Sicherheit durch eine eindeutige Authentifizierung unterstützen, bei der nur autorisierte Benutzer die API nutzen können. Darüber hinaus sollten alle Daten, die über die API ausgetauscht werden, verschlüsselt oder auf andere Weise vor Schnüffelei und Diebstahl geschützt werden.

Beispiele für heute verwendete APIs

APIs sind weit verbreitet und für den Erfolg vieler moderner Softwareplattformen sogar unerlässlich. Alltägliche Computernutzer verwenden möglicherweise eine Vielzahl von APIs, ohne sich ihrer Bedeutung bewusst zu sein. Beispiele für die Verwendung von APIs in der heutigen Zeit sind unter anderem:

  • Social Media APIs. Social-Media-Plattformen wie Twitter und Facebook verlassen sich auf APIs, um die Kommunikation zwischen der Plattform und entfernten Endpunkten, einschließlich Funktionen wie Twitter-Bots, abzuwickeln.
  • Anmelde- und Authentifizierungs-APIs. Die heutigen hochintegrierten Softwareumgebungen verlassen sich auf APIs, um ein gewisses Maß an Einzelanmeldung zu ermöglichen. So kann eine Anwendung einen Benutzer auffordern, sich mit Facebook anzumelden. Auf diese Weise muss der Benutzer nicht für jede Website oder Anwendung, die er nutzt, ein eigenes Konto erstellen, sondern die betreffende API integriert im Hintergrund die Authentifizierung mehrerer Anwendungen.
  • Widget- und Service-APIs. APIs werden häufig verwendet, um eine breite Palette kleiner Funktionen zu integrieren. So werden zum Beispiel der Wetterbericht, der Gezeitenplan, Nachrichten und andere Inhalte, die bei einer Websuche angezeigt werden, in der Regel über APIs generiert, die von der Suchmaschine für verschiedene Dienstanbieter verwendet werden. Andere Dienste wie Google Maps verwenden eine API, damit die Nutzer über ihren Webbrowser nach Orten suchen oder Routen planen können, und APIs ermöglichen auch die Einbindung von Karten in zahlreiche Websites von Drittanbietern.
  • Finanz- und Zahlungs-APIs. Es ist üblich, dass sich eine Bank auf eine API verlässt, um Fernnutzer mit den Backend-Systemen der Bank für Ferneinzahlungen, Saldoüberprüfungen, Überweisungen und elektronische Zahlungen zu verbinden. Große Finanzunternehmen wie PayPal verwenden eine API, um einen Benutzer mit einem PayPal-Konto zu verbinden, und nutzen PayPal sogar, um Zahlungen an andere Einkaufsseiten wie Amazon und eBay zu leisten.
  • Reise- und Buchungs-APIs. Benutzer, die nach Flugplänen suchen und Tickets kaufen, verwenden die API der Fluggesellschaft, während die Suche nach der Verfügbarkeit von Hotels und die Buchung von Zimmern die API des Hotels nutzen. Andere Websites wie Trivago und Expedia verwenden benutzerdefinierte APIs, um den Nutzern die Suche und Buchung einer breiten Palette von Flügen und Unterkünften zu ermöglichen, während die Reise-Website die APIs von Fluggesellschaften, Hotels, Autovermietungen und anderen Anbietern im Backend nutzt.
  • Versand- und Lieferketten-APIs. Der Prozess des Verpackens und Versendens eines Artikels vom Herkunftsort zum Zielort erzeugt eine große Menge an Echtzeitdaten. APIs werden verwendet, um Kunden die Möglichkeit zu geben, den Status eines Kaufs zu überprüfen und alle Versanddetails zu sehen, einschließlich des aktuellen Standorts des Pakets und seiner voraussichtlichen Lieferung.
  • APIs für die Bereitstellung und Verwaltung von Inhalten. Online-Plattformen für die Bereitstellung von Inhalten wie Spotify und Netflix nutzen APIs, um den Nutzern die Möglichkeit zu geben, die gewünschten Inhalte auszuwählen und diese Streaming-Inhalte auf das Gerät des Nutzers zu übertragen, während der Anbieter die Kontrolle über die Inhalte behält, die niemals heruntergeladen oder auf dem Gerät des Nutzers gespeichert werden.
  • Microservices. Aus Sicht der Softwareentwicklung sind APIs wichtige Elemente moderner, auf Microservices basierender Anwendungen, da sie die Kommunikation zwischen den vielen Modulen oder Containern ermöglichen, aus denen sich die Anwendung zusammensetzt. So kann eine Änderung an einem Modul vorgenommen werden, aber Tests und Aktualisierungen können auf das jeweilige Modul oder den Microservice beschränkt werden.
Beispiel für die Anwendung von APIs
Abbildung 2: Beispiel für die Anwendung von APIs in verschiedenen Branchen.

Dies sind in der Regel die gängigsten und bekanntesten APIs, die heute verwendet werden, aber es gibt zahllose APIs, die für Geschäftspartner oder für den internen Gebrauch entwickelt wurden und dem Unternehmen helfen, ohne dass sie jemals allgemein angenommen werden. Mit der wachsenden Bedeutung von Software werden APIs auch weiterhin neue Anwendungsfälle finden und eine immer größere Rolle in der Softwareentwicklung spielen.

Erfahren Sie mehr über Softwareentwicklung