FAQ API

Was Sie über Application Programming Interfaces wissen müssen

01.12.2019
Von  und
Jonathan ist Softwareentwickler und lebt in Chicago. Er arbeitet als freiberuflicher Autor für unsere US-Schwesterpublikation Infoworld.


Florian beschäftigt sich mit vielen Themen rund um Technologie und Management. Daneben betätigt er sich auch in sozialen Netzen.
Application Programming Interfaces – kurz APIs – sind enorm wichtig für vernetzte IT-Infrastrukturen. Hier erfahren Sie alles, was Sie über Schnittstellen wissen müssen.

Ein System von Application Programming Interfaces stellt ein grundlegendes Konzept dar, mit dessen Hilfe verschiedene Software-Komponenten und -Ressourcen miteinander interagieren können. Ordentlich designte Software verfügt über interne APIs, um die Organisation des Codes zu erleichtern und die Komponenten wiederverwenden zu können. Darüber hinaus existiert eine Vielzahl öffentlich zugänglicher Schnittstellen, die es Ihnen erlauben, Funktionalitäten zu nutzen, die "Andere" entwickelt haben.

Schnittstellen sind essenziell für die IT-Vernetzung. Wir sagen Ihnen, was Sie über APIs wissen müssen.
Schnittstellen sind essenziell für die IT-Vernetzung. Wir sagen Ihnen, was Sie über APIs wissen müssen.
Foto: Tavarius - shutterstock.com

Was ist eine API?

Ein Application Programming Interface wird definiert als eine Spezifikation möglicher Interaktionen mit einer beliebigen Software-Komponente. Das lässt sich anhand eines Beispiels veranschaulichen: Stellen Sie sich die Software-Komponente einfach als Auto vor. Dessen Schnittstellen würden Auskunft darüber geben, was das Fahrzeug "kann" - also beschleunigen, bremsen oder das Radio anschalten. Darüber hinaus geben die APIs des Fahrzeugs auch Aufschluss darüber, wie man die genannten Funktionen auslöst: Um zu beschleunigen, betätigen Sie mit dem Fuß das Gaspedal.

Die API muss dabei gar nicht erst erklären, was im Inneren des Verbrennungsmotors abläuft, wenn das Gaspedal betätigt wird. Haben Sie einmal gelernt, ein konventionelles Auto zu steuern, können Sie sich auch hinter das Steuer eines Elektroboliden setzen, ohne sich vorher ein komplett neues Skillset antrainieren zu müssen. Die Informationen über das "Was" und das "Wie" werden in der API-Definition festgehalten, welche eine abstrakte Größe darstellt und vom Fahrzeug selbst unabhängig zu betrachten ist.

Dabei sollten Sie sich stets bewusst sein, dass der Name einiger Schnittstellen oft sowohl als Synonym für die Spezifikation der Interaktionen als auch die Software-Komponente selbst gebraucht wird. Die Bezeichnung "Twitter API" beispielsweise, meint nicht nur das Regel-Set, das bei der Interaktion mit Twitter zur Anwendung kommt, sondern wird auch als Bezeichnung für das "Ding" wahrgenommen, mit dem Sie interagieren.

Wie helfen Schnittstellen?

Geht es um Software, sind Schnittstellen buchstäblich allgegenwärtig. Sie gehen Hand in Hand mit einem der grundlegenden Konzepte der Informationstechnik: der Abstraktion. Diese stellt ein Mittel dar, um die Komplexität eines Systems zu "organisieren" - und komplizierte Tasks zu vereinfachen. Dieses Prinzip lässt sich anhand der allseits bekannten (und in Deutschland weiterhin nicht zulässigen) Amazon Dash Buttons veranschaulichen: Die batteriebetriebenen Druckknöpfe mit integriertem Schaltkreis bestellen auf "Push" bestimmte Produkte bei Amazon.

Wenn Sie das Produkt nutzen wollen, verbinden Sie es zunächst per Smartphone App mit Ihrem WLAN-Netzwerk und Ihrem Amazon-Konto - anschließend verknüpfen Sie es noch mit einem bestimmten Produkt Ihres täglichen Bedarfs - beispielsweise Toilettenpapier. Sobald sich Ihr Vorrat dann dem Ende zuneigt, bestellen Sie einfach per Knopfdruck nach. Dasselbe Prinzip kommt auch bei einem Application Programming Interface zur Anwendung. Auch hier "versteckt" eine nach außen simpel wirkende Schnittstelle die Komplexität der Abläufe: Die Produkt-ID muss aus einer Datenbank kommen, Ihre Liefer- und Rechnungsadresse muss über Ihr Konto ermittelt werden, das nächstliegende Logistik-Zentrum muss kontaktiert werden - bevor sich Ihre Lieferung dann endlich auf den Weg zu Ihnen machen kann. Wobei natürlich auch die pünktliche Lieferung aller anderen Bestellungen sichergestellt sein muss.

Jetzt stellen Sie sich vor, Sie müssten all diese Abläufe als Kunde selbst managen. Wahrscheinlich würden Sie auf eine alternative Beschaffungsmöglichkeiten für Toilettenpapier umsteigen, schließlich wäre die Komplexität und der zeitliche Aufwand für eine einzelne Bestellung viel zu hoch. Der Auslieferung Ihres Toilettenpapiers liegt eine lange, computergestützte Prozesskette zu Grunde - aber Sie müssen sich nur über eine Sache Gedanken machen: den Druck auf den Button.

Genau so funktionieren APIs für Softwareentwickler und Programmierer: Ein überbordendes Maß an Komplexität wird in ein relativ simples Interaktions-Set gesteckt, das fortan genutzt werden kann, um nicht jedes Mal bei null starten zu müssen. Im Rahmen eines Software-Projekts können tausende von Schnittstellen zum Einsatz kommen, von denen sich jede einzelne wiederum auf eine andere API verlässt.

Wie geht API-Integration?

Schnittstellen gehören seit Jahren zum Standardrepertoire von Computerwissenschaftlern und Programmierern. Traditionell wurden APIs genutzt, um Code-Komponenten, die auf derselben Maschine laufen, verbinden zu können. Weil Netzwerke heute allgegenwärtig sind, sind mehr und mehr sogenannte "public" oder auch "open" APIs verfügbar. Solche Schnittstellen sind "nach außen" gerichtet und über das Internet erreichbar. Das ermöglicht Ihnen, Programmcode zu erstellen, der via Netz mit dem Softwarecode anderer Unternehmen interagieren kann. Dieser Prozess heißt API-Integration.

"Open" oder "public" ist in diesem Zusammenhang allerdings nicht gleichzusetzen mit "kostenlos". Die Verfügbarkeit solcher APIs simplifiziert die Schnittstellenintegration jedoch deutlich. Zahlreiche offene APIs stehen Ihnen im Web zur Verfügung - insbesondere die Tech-Giganten tun sich hierbei hervor. Die Plattformen werden dabei im Grunde erst durch die Möglichkeiten, die ihre Schnittstellen schaffen zu richtigen Plattformen:

  • Google APIs verbinden Ihren Code mit der ganzen Palette von Google Services. Für den Konzern nehmen APIs einen hohen Stellenwert ein. Deshalb wurde vor einigen Jahren mit Apigee auch eine führende Schnittstellen-Management-Plattform akquiriert;

  • Facebook APIs verschaffen Ihnen unter anderem Zugang zu den Marketing Tools des Unternehmens. Nach dem Skandal um Cambridge Analytica hat Facebook allerdings die Verfügbarkeit der über die APIs abrufbaren Informationen stark eingeschränkt.

Eine Übersicht über weitere, wichtige Application Programming Interfaces, die Sie kennen sollten, finden Sie hier.

Web Services gleich APIs?

Vielleicht erinnern Sie sich noch an den Begriff "Web Services" (der vor allem kurz nach der Jahrtausendwende gerne und teilweise inflationär gebraucht wurde) und das Prinzip der "open APIs" kommt Ihnen irgendwie bekannt vor? In der Tat ist ein Web Service nur eine bestimmte Art von offener Schnittstelle - und zwar eine, die ein ziemlich rigides Spezifikations-Set erforderlich macht. Dazu gehört beispielsweise, dass dieses in WSDL (Web Services Description Language) - einer XML-Variante - vorliegt.

Web Services sollten ursprünglich Teile einer Serviceorientierten Architektur (SOA) sein. Weil SOAs nie ihr volles Potenzial entfalten konnten, haben auch Web Services nicht den Durchbruch geschafft. Der technologische Fortschritt in der Service-zu-Service-Kommunikation - insbesondere das Aufkommen der schlankeren, flexibleren REST-APIs - hat ebenfalls dazu beigetragen, dass die Web Services in der Welt der public APIs an Stellenwert verloren haben.

Was ist REST? Und was kann es?

Ursprünglich sollten Web Services über das Messaging-Protokoll SOAP (Simple Object Access Protocol) kommunizieren, das XML-Dokumente per http verschickt. Heutzutage nutzen die meisten webbasierten Schnittstellen allerdings das REST (Representational State Transfer) -Protokoll als Architekturgrundlage.

Formal eingeführt wurde REST im Jahr 2000 vom Computerwissenschaftler Roy Fielding. Es beinhaltet ein Set von Architektur-Komponenten, Design-Prinzipien und Interaktionen, um verteilte Systeme zu erzeugen, die mediale Inhalte verschiedenster Art (Text, Bild, Video) beinhalten. Im Kern ist REST eine Art und Weise - ein Stil - Systeme zu bauen, der flexible Kommunikation und die Darstellung von Informationen quer über das World Wide Web erlaubt. Dabei stellt er auch die nötige Grundstruktur zur Verfügung, um Komponenten für allgemeine Zwecke einfach erstellen zu können.

Innerhalb einer REST-API kann eine Ressource so gut wie alles sein, beispielsweise ein User, eine Liste mit Tweets oder die Ergebnisliste bei der Suche nach Tweets. Jede dieser Ressourcen ist über einen "resource identifier" adressierbar. Im Fall der webbasierten REST-Schnittstellen handelt es sich dabei im Regelfall um die URL. Wenn eine Applikation nun eine Ressource anfragt, die diesen "identifier" nutzt, liefert die API dessen derzeitige "representation" in einem Format, das die Anwendung entsprechend verarbeiten kann - etwa eine JPEG-Datei oder eine HTML-Seite.

Eines der wesentlichen Alleinstellungsmerkmale von REST ist, dass es Daten an die anfragende Anwendung überträgt. Das führt zwar zu großer Flexibilität, denn die Applikation kann mit den Daten "machen, was sie will", kostet auf der anderen Seite aber auch Effizienz. Daten über das Web zur Verarbeitung zu "transportieren", dauert schließlich seine Zeit.

Wie geht Schnittstellen-Design?

API Design beschreibt den Prozess, in dem das "was" und das "wie" einer Schnittstelle ausformuliert werden. Wie bei allen kreativen Unterfangen kommt es auch beim API Design im Wesentlichen darauf an, wieviel Sorgfalt und Knowhow die Entwickler an dieser Stelle einfließen lassen. Ein qualitativ hochwertiges Application Programming Interface:

  • ist konsistent,

  • in der Lage Kontext mit einzubeziehen

  • und die Bedürfnisse der User zu berücksichtigen.

Konsistentes Verhalten nimmt dabei wesentlichen Einfluss darauf, wie schnell die API zum Einsatz kommen kann und wie fehleranfällig sie bei der Softwareentwicklung selbst ist. Im Allgemeinen sollten APIs, die ähnliche Aufgaben ausführen sich auch ähnlich "verhalten" - ihre technischen Unterschiede spielen dabei keine Rolle.

Die Einbeziehung von Kontext ist eine andere Form der Konsistenz, obwohl das mit externen Faktoren zusammenhängt und nicht mit der API selbst. Es geht dabei darum, auf gängige Best Practices zurückzugreifen und sich von anderen APIs "inspirieren" zu lassen, mit deren Funktionsweise Ihre User bereits vertraut sind.

Ganz oben auf Ihrer Prioritätenliste sollten beim Schnittstellen-Design allerdings Ihre User stehen: Sie sollten wissen, wer diese sind und welche Bedürfnisse sie haben. Wenn Sie die "pain points" Ihrer User kennen und Ihnen dabei helfen, diese aus der Welt zu schaffen, stehen die Chancen für eine glückliche Nutzerschaft gut. Wenn Sie nun bereit sind, mit Application Programming Interfaces durchzustarten, sollten Sie sich diese Auflistung kostenloser Schnittstellen-Entwicklungstools nicht entgehen lassen.

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.