Was sind APIs, und wozu brauchen wir sie?

Thu Feb 01 2024

APIs sind Software-Schnittstellen, die den Austausch von Informationen zwischen Computeranwendungen erleichtern, indem sie Abstraktion bieten und die Kommunikation vereinfachen.

Die drei am häufigsten verwendeten Protokolle bei der Nutzung von APIs sind RPC, SOAP und HTTP REST, von denen jedes unterschiedliche Zwecke erfüllt und unterschiedliche Flexibilität und Benutzerfreundlichkeit bei der Implementierung bietet.

Was sind APIs? screen-shot-2023-09-06-at-13-18-1-3.png

API-Spezifikationen sind entscheidend, da sie Entwicklern ein Verständnis für das Verhalten der API und die erforderlichen Eingaben vermitteln, um bestimmte Ergebnisse zu erzielen. Dies gewährleistet standardisierte Interaktionen und erleichtert das Arbeiten mit ihnen.

Kommunikation spielt eine entscheidende Rolle in unserer Welt, in der Menschen Ideen und Gedanken durch Sprache oder Schrift austauschen. Für ein effektives Verständnis zwischen zwei Personen müssen sie eine gemeinsame Sprache teilen. Sprache dient als standardisierte Methode zur Organisation von Gedanken und deren Übermittlung durch gesprochene Sprache oder geschriebenen Text.

Ähnliche Prinzipien gelten für die Welt der Maschinen und Computer-Anwendungen. Computer-Anwendungen benötigen im Allgemeinen ein Kommunikationsmittel (Protokoll) und eine spezifische "Sprache" oder Datenformat, das von beiden Seiten verstanden werden kann. Hier kommen APIs (Application Programming Interfaces) ins Spiel. APIs sind Software-Schnittstellen, die den Austausch von Informationen zwischen zwei Computeranwendungen ermöglichen.

Das Entscheidende an APIs ist die von ihnen bereitgestellte Abstraktion

So können beispielweise im Fall von 5G QoD (Quality on Demand) APIs Benutzer eine höhere Bandbreite für ihre Geräte anfordern, ohne die Feinheiten der Service-Bereitstellung verstehen zu müssen.

Wie APIs funktionieren

Um die Kommunikation zwischen zwei Anwendungen zu ermöglichen, benötigen wir ein Mittel, um Informationen von Anwendung A zu Anwendung B zu transportieren. Dies wird durch Protokolle erreicht.

In der Welt der APIs sind dies die drei am häufigsten verwendeten Protokolle

RPC (Remote Procedure Call): Diese Methode wird für den Aufbau verteilter, client-server-basierter Anwendungen verwendet. Sie ähnelt einem Unterprogramm- oder Funktionsaufruf. RPC eignet sich gut für Client-Server-Interaktionen, bei denen der Steuerfluss zwischen den beiden Entitäten wechselt. Im Gegensatz zu HTTP REST bietet RPC eine begrenzte Flexibilität und unterstützt nur GET- und PUT-Anweisungen.

SOAP (Service Object Access Protocol): SOAP ist ein leichtgewichtiges Protokoll, das für den Austausch strukturierter Informationen in einer dezentralen, verteilten Umgebung entwickelt wurde. APIs, die sich an SOAP-Prinzipien halten, ermöglichen XML-Kommunikation zwischen Systemen über HTTP oder Simple Mail Transfer Protocol (SMTP) für die E-Mail-Übertragung. XML, eine erweiterbare Markup-Sprache, wird weitgehend für die Speicherung und den Austausch von Daten über das Internet oder andere Netzwerke verwendet. Die Implementierung von SOAP kann herausfordernd sein und erfordert im Vergleich zur einfachen Implementierung und geringeren Bandbreitenanforderungen von REST, insbesondere auf Smartphones, eine höhere Bandbreite.

HTTP REST: Im Gegensatz zu SOAP, das ein eigenes Protokoll ist, handelt es sich bei REST um einen Software-Architekturstil für Anwendungen, die über das HTTP-Protokoll funktionieren. HTTP ist dasselbe Protokoll, das für das Surfen im Internet und den Zugriff auf Webseiten verwendet wird. REST APIs verwenden die folgenden Befehle, um Informationen von einer entfernten Anwendung abzurufen, hinzuzufügen oder zu löschen:

GET: Anfrage von Informationen PUT: Aktualisierung oder Erstellung neuer Informationen POST: Erstellung neuer Informationen PATCH: Aktualisierung vorhandener Informationen DELETE: Entfernung von Informationen

Nun, da wir verstehen, wie API-Protokolle eine erfolgreiche Kommunikation ermöglichen, betrachten wir eine Situation, in der die 5G API der Deutschen Telekom genutzt werden soll, um die Bandbreite von Geräten zu erhöhen oder die Latenz zu reduzieren. Um dies zu erreichen, müssen die Anwender verstehen, wie unsere API implementiert ist.

Erinnern Sie sich daran, wie wir bereits über menschliche Kommunikation gesprochen haben? Der Entwickler muss sich über die von uns erwarteten Daten im Klaren sein, damit unsere Anwendung seine Anfrage verstehen kann. Hier kommen API-Spezifikationen ins Spiel. Sie vermitteln Nutzern ein Verständnis für das Verhalten der API und die erforderlichen Eingaben, um bestimmte Änderungen (wie die Verbesserung der Latenz/Bandbreite in diesem Fall) vorzunehmen.

APIs können für eine Vielzahl von Funktionen entwickelt werden, von der Steuerung von Lichtern bis zur Abrufung von Wettervorhersagen. Daher sind API-Spezifikationen so wichtig. Es ist daher entscheidend für DeutscheTelekom und die gesamte Telco-Branche, zu standardisieren, wie Nutzer mit 5G und anderen APIs interagieren. Dies ist genau das Ziel des Camara-Projekts – das Leben von Entwicklern zu vereinfachen und sicherzustellen, dass ihre Anwendungen nahtlos über mehrere Telekommunikationsunternehmen hinweg funktionieren, ohne dass umfangreiche Code-Änderungen erforderlich sind!