Was ist eine API und wofür wird sie verwendet
07:30, 12.07.2022
Im Laufe Ihrer wahrscheinlich langjährigen Erfahrung als PC-, Laptop- oder Smartphone-Nutzer sind Sie bestimmt schon einmal auf diese kurze Abkürzung gestoßen - API, die für Application Programming Interface steht. Obwohl die meisten Nutzer nicht wissen, dass sie APIs verwenden, sind APIs heutzutage an einem großen Teil der Anwendungen beteiligt und ermöglichen verschiedene Funktionen, ohne die die Welt der Anwendungen nicht so aussehen würde, wie sie aussieht, wenn Sie sich jemals gefragt haben, was API ist, dann wird die folgende Lektüre alle ihre grundlegenden Aspekte für Sie klären.
Hauptmerkmale von APIs
Die Anwendungsprogrammierschnittstelle (API) ist ein Satz von Werkzeugen und Funktionen, die die Interaktion verschiedener Programme untereinander gewährleisten. Darüber hinaus ist die API oft auch für die Kommunikation zwischen verschiedenen Teilen der Systemanwendungen verantwortlich. APIs sind von entscheidender Bedeutung für die Erstellung komplexer und mehrstufiger Supports, die eine breite Palette von Funktionen unterstützen.
Die Mechanik hinter APIs
Verschiedene APIs werden im Allgemeinen in Form von Bibliotheken angeboten, die verschiedene Funktionen enthalten, die von den Entwicklern zur Ausführung verschiedener Aufgaben verwendet werden können. Die API als solche fungiert als eine Art Kommunikationsbrücke zwischen der Schnittstelle der Client-Anwendung und dem API-Server, der für die Backend-Logik und den Zugriff auf Datenbanken zuständig ist.
Eines der Hauptziele von APIs ist es, die Kommunikation zwischen einem Client, der Anfragen stellt, und einem Server, der diese Anfragen verarbeitet, zu erleichtern. Der Prozess der Interaktion mit einer API sieht im Allgemeinen folgendermaßen aus:
- Der Client sendet eine Anfrage mit den entsprechenden HTTP-Methoden. Diese Anfrage enthält API-Bausteine wie Kopfzeilen, Parameter und optional einen Anfragetext.
- Der Server verarbeitet die Anfrage, überprüft den Endpunkt und die Methode, liest oder schreibt in einer Datenbank, führt Berechnungen durch oder ruft andere Dienste auf und überprüft die Authentifizierung und Autorisierung.
- Der Server sendet eine Antwort, die einen Statuscode, Kopfzeilen und einen Antwortkörper enthält.
- Der Client empfängt und verarbeitet die Antwort. Danach verwenden die Anwendungen die Daten je nach Bedarf, um dem Benutzer die erfassten Informationen anzuzeigen oder sie lokal zu speichern.
Bausteine von APIs
Eine API umfasst in der Regel die folgenden Komponenten:
- Endpunkt: Endpunkt ist die spezifische URL, über die eine Client-Anwendung auf die API zugreifen kann.
- Request: Die Anfrage wird vom Client gestellt und an den Server gesendet. Im Einzelnen:
- HTTP-Methode: Hier wird die Art der Operation festgelegt. Es kann GET, POST, PUT, DELETE, etc. sein.
- Header: Die Header liefern zusätzliche Informationen, wie z.B. Authentifizierungs-Tokens.
- Parameter: Parameter umfassen Query-Parameter (an die URL angehängt) und Body-Parameter (im Request-Body enthalten).
- Antwort: Antwort bezieht sich auf die Daten, die vom Server an den Client zurückgesendet werden, in der Regel in den Formaten JSON oder XML-Format.
- Statuscodes: Diese Codes sind für die Anzeige des Ergebnisses der Anfragen verantwortlich (z.B. 200 für Erfolg, 404 für nicht gefunden, 500 für Serverfehler).
Verschiedene Arten von APIs
Es gibt verschiedene Arten von APIs sowie mehrere Möglichkeiten, sie nach verschiedenen Aspekten zu kategorisieren.
Web-APIs sind die häufigste Art von APIs. Diese APIs verwenden HTTP/HTTPS, um die Kommunikation zwischen einem Client und einem Server über das Web zu ermöglichen.
Bibliotheks-APIs sind APIs, die die Kommunikation mit verschiedenen Programmiersprachenbibliotheken ermöglichen. Sie werden üblicherweise von Entwicklern zur Ausführung von Aufgaben verwendet, indem sie Funktionsaufrufe in ihren Code integrieren.
Betriebssystem-APIs werden für die Interaktion mit den zugrundeliegenden Betriebssystemen verwendet und bieten insbesondere Funktionen zur Verwaltung verschiedener Hardware- und Systemressourcen.
Datenbank-APIs sind APIs, die allgemein in Datenbankverwaltungssystemen (DBMS) verwendet werden und verschiedene Methoden zur Durchführung von CRUD-Operationen (Create, Read, Updated und Delete) in Datenbanken bereitstellen.
Entfernte APIs sind APIs, die zur Verwaltung entfernter Ressourcen über ein Netz verwendet werden. Sie sind besonders wichtig für verteilte Systeme und Cloud-Dienste.
Hardware-APIs sind APIS, die verwendet werden, um die Interaktion zwischen Software und Hardware zu ermöglichen und Anweisungen zu geben, wie auf bestimmte Hardwareressourcen zugegriffen werden soll. Gängige Beispiele hierfür sind Gerätetreiber und Internet of Things APIs.
Service-APIs sind APIs, die Funktionalitäten verschiedener Webdienste und Cloud-Dienste bereitstellen. Die Palette der Funktionen, die sie bereitstellen, ist äußerst vielfältig und umfasst Dinge wie Datenspeicherung, maschinelles Lernen, Zahlungsabwicklung und viele andere.
Eingebettete APIs sind APIs, die in eingebetteten Systemen verwendet werden, um Funktionalitäten für bestimmte Hardware- und Softwareumgebungen bereitzustellen.
Veröffentlichungsrichtlinien: API-Verfügbarkeit
APIs können nach ihrer Verfügbarkeit in Bezug auf die Veröffentlichungspolitik kategorisiert werden. Hier gibt es drei Haupttypen: privat (intern), Partner und öffentlich.
Private (interne) APIs sind die APIS, die innerhalb einer bestimmten Organisation verwendet werden. Ihr Zweck ist es, Systeme, Dienste und Anwendungen innerhalb des digitalen Ökosystems dieser Organisation zu verbinden, während externe Nutzer in der Regel keinen Zugang zu ihnen haben sollen, wobei der Zugang zu bestimmten APIs oft sogar auf bestimmte Teams und Abteilungen beschränkt ist.
APIs dieser Art spielen für Unternehmen eine wichtige Rolle, indem sie die Modularität der Softwarearchitektur eines Unternehmens verbessern, die Kommunikation zwischen verschiedenen internen Systemen ermöglichen und die Effizienz und Produktivität steigern. Solche APIs können zum Beispiel verwendet werden, um interne HR-Systeme mit Gehaltsabrechnungssystemen und APIs für die interne Datenverarbeitung und -analyse zu verbinden.
Partner-APIs sind APIs, die von mehreren Geschäftspartnern genutzt werden. Sie sind meist nicht öffentlich zugänglich, sondern dienen der Integration der Dienste von zwei oder mehr Unternehmen. Um auf sie zugreifen zu können, müssen die Partner oft Vereinbarungen unterzeichnen und Genehmigungen einholen.
APIs dieser Art werden häufig für die Kommunikation zwischen Zahlungsabwicklern und E-Commerce-Plattformen oder für die Integration der Lieferkette zwischen Herstellern und Einzelhändlern verwendet.
Offene (öffentliche) APIssind APIs, die jedem Entwickler öffentlich zur Verfügung stehen und so konzipiert sind, dass sie für jedermann zugänglich sind, oft begleitet von einer umfassenden Dokumentation.
Für den Zugriff auf diese APIs ist häufig eine Registrierung erforderlich, um einen API-Zugangsschlüssel zu erhalten, während einige offene APIs völlig offen sind und keine Authentifizierung erfordern.
Öffentliche APIs haben die unterschiedlichsten Anwendungsfälle und ermöglichen oft die Integration verschiedener Dienste und Lösungen in die Anwendungen eines jeden Entwicklers. OpenAI API, Google Maps API und OpenWeather API sind gängige Beispiele dafür.
API-Standards und -Protokolle
Es gibt verschiedene APIs aufgrund einer Vielzahl von API-Standards und -Protokollen. Hier sind einige der gängigsten.
RPC, SOAP, REST, gRPC und GraphQL
RPC: RPC (Remote Procedure Call) ist eine Art von Remote-API, die es einem Programm ermöglicht, Prozeduren auf entfernten Geräten auszuführen.
gRPC: gRPC ist ein von Google entwickeltes hochleistungsfähiges RPC-Framework, das HTTP/2 für den Transport, Protokollpuffer für die Serialisierung, Authentifizierung, Lastausgleich und vieles mehr bietet.
REST ist eine Art von WepAPI. Sie verwendet standardmäßige HTTP-Methoden (GET, POST, PUT, DELETE). REST-APIs sind außerdem zustandslos, d. h. jede Anfrage eines Clients an einen Server muss alle Informationen enthalten, die der Server benötigt, um die Anfrage zu erfüllen. Für den Datenaustausch verwenden REST-APIs meist JSON oder XML.
SOAP: SOAP ist eine Art von Web-API, die XML für Nachrichten verwendet und auf Protokollen der Anwendungsschicht wie HTTP und SMTP beruht. Es wird hauptsächlich für den Austausch strukturierter Informationen in einer dezentralisierten, verteilten Umgebung verwendet.
GraphQL: GraphQL ist eine Abfragesprache für APIs und eine Laufzeitumgebung für die Ausführung dieser Abfragen. Der Hauptzweck dieser API ist es, Kunden die Möglichkeit zu geben, genau die Daten abzufragen, die sie benötigen.
Navigieren in der API-Dokumentation
Die API-Dokumentation ist für die Implementierung verschiedener APIs von entscheidender Bedeutung, da sie die für die Verwendung dieser oder jener API erforderlichen Informationen enthält. Eine brauchbare API braucht in erster Linie eine brauchbare Dokumentation, die alle Informationen darüber enthält, wie und wofür diese oder jene API verwendet werden kann.
Eine gute und gut strukturierte API-Dokumentation enthält typischerweise:
- Abschnitt Übersicht: Hier finden Sie die Einführung - eine kurze Beschreibung dessen, was die API kann, die Basis-URL, d.h. die Stamm-URL für alle API-Endpunkte, und die API-Versionierung.
- Authentifizierung: Hier finden Sie die Informationen zu den verwendeten Authentifizierungsmechanismen. Dazu gehören typischerweise API-Schlüssel, OAuth-Token-Authentifizierungsschritte und andere mögliche Methoden.
- Endpunkte: Hier finden Sie Details zu allen Endpunkten. Dieser Abschnitt enthält normalerweise den größten Teil der Dokumentation. Der Abschnitt umfasst normalerweise die Endpunkt-URL, HTTP-Methoden und Parameter - Pfadparameter, Abfrageparameter, Body-Parameter und Header.
- Beispiele für Anfragen: Enthält die Richtlinien und Beispiele, wie man Anfragen stellt.
- Antwortformat: In diesem Abschnitt wird die Struktur der API-Antworten näher erläutert.
- Tarifgrenzen: Policies on rate, including the number of allowed requests per time period, checking the current usage and remaining quotes, and recommendations for handling rate limiting.
- SDKs und Bibliotheken: Bei einigen APIs werden Client-Bibliotheken oder SDKs vom API-Anbieter bereitgestellt. Dieser Abschnitt kann Links zu offiziellen SDKs des Anbieters enthalten.
- FAQ und Fehlerbehebung: Häufige Fragen und Lösung von häufigen Problemen.
- Support und Community: Hier finden Sie Informationen zu den größten Support-Kanälen, Links zu Support-Foren, E-Mail-Support oder Ticketing-Systemen sowie zu Online-Communities und Diskussionsforen.
API-Implementierungen in der realen Welt
In der heutigen digitalen Welt gibt es eine unendliche Anzahl von APIs. Werfen wir einen Blick auf einige gängige Beispiele, die Sie sicher auch schon einmal gesehen haben.
Google Maps API: Wenn Sie eine Website besuchen und sehen, dass dort eine interaktive Karte in die Oberfläche integriert ist, haben Sie es wahrscheinlich mit Google Maps API zu tun. Google Maps API ermöglicht die Einbettung von Karten in Webseiten und Anwendungen, Geokodierung (Umwandlung von Adressen in Koordinaten), Wegbeschreibung und Routenplanung und vieles mehr.
Die Twitter-API erlaubt die Interaktion mit der Social-Media-Plattform Twitter, so dass Nutzer Tweets posten, Timelines abrufen, auf Nutzerprofile und Follower-Listen zugreifen, nach Tweets suchen, Tweets in Echtzeit streamen und vieles mehr können. Diese API ist besonders nützlich für Tools zur Verwaltung sozialer Medien.
Stripe API ist eine API des weit verbreiteten Zahlungsabwicklers Stripe, die eine sichere Zahlungsabwicklung, Abonnementverwaltung, Bearbeitung von Rückerstattungen und Streitigkeiten sowie die Verwaltung von Kundendaten ermöglicht.
Spotify API wird verwendet, um auf den Spotify-Streaming-Dienst zuzugreifen, ohne sich auf der offiziellen Webplayer-Website von Spotify zu befinden. Dies kann besonders hilfreich für die Erstellung von Empfehlungs-Apps, DJ-Software zur Integration von Spotify-Titeln und das Teilen von Musikfunktionen auf Social-Media-Plattformen sein.
Skyscanner Flight Search ist eine Plattform, die es Nutzern ermöglicht, nach Flügen zu einem bestimmten Ort zu suchen, die von verschiedenen Unternehmen angeboten werden, und so den Prozess der Suche nach einem optimalen Flug zu vereinfachen.
Die Vorteile des Einsatzes von APIs
APIs spielen eine entscheidende Rolle in der modernen Software- und insbesondere Anwendungsentwicklung. Sie ermöglichen es Softwareentwicklern, fertige Lösungen von Drittanbietern in ihre Dienste zu integrieren, ohne neue Tools von Grund auf zu entwickeln und ohne tief in den Quellcode einzutauchen. Eine API ist eine Art Abstraktionsschicht, die die Kommunikation zwischen verschiedenen Anwendungen und Hardwarekomponenten ermöglicht. Für viele Unternehmen, die Anwendungen verschiedener Art entwickeln wollen, stellt sich daher nicht die Frage, ob sie APIs verwenden sollen oder nicht, sondern welche APIs sie verwenden und wie sie diese in ihr Software- und Hardware-Ökosystem integrieren sollen.