🔗 Arbeiten mit API's

🔗 Arbeiten mit API's

Sogenannte Application Programming Interfaces, kurz API’s, sind Programmierschnittstellen, welche es ermöglichen auf Daten oder Funktionen anderer Dienste zuzugreifen. Der Zugriff erfolgt mit Hilfe von HTTP und meistens automatisiert mit Hilfe von Programmiersprachen wie Python, Javascript o.ä.

Funktionsweise

APIs werden in der Regel durch HTTP-Anfragen angesprochen, ganz ähnlich wie bei einem Webseitenaufruf. Mit Hilfe von Programmiersprachen können diese HTTP-Anfragen präzise zusammengestellt werden, um gezielt bestimmte Inhalte bei der Schnittstelle anzufragen.

Authentifizierung

Programmierschnittstellen sind nur in den seltesten Fällen frei nutzbar. In der Regel muss mit jeder Anfrage eine Authentifizierung durch einen API-Key erfolgen. Dieser API-Key ermöglicht es dem Anbieter der API einzuordnen, wer die Anfrage gestellt hat.

Eine Zuordnung ist häufig notwendig für…

  1. Authorisierung
    • Es muss sichergestellt werden, dass die anfragende Person oder System auf die Inhalte zugreifen darf
    • Beispiel: Mein Programm soll auf meine gemieteten Server bei einem Cloud-Provider zugreifen. Der Anbieter muss sicherstellen, dass ich diese Daten lesen darf.
  2. Abrechnung
    • API Anfragen können Kosten beim Anbieter erzeugen. Diese Kosten können anhand des Keys einem Kunden zugeordnet werden.
    • Beispiel: Mein Programm soll etwas von einer KI analysieren lassen. Die Anfrage an die KI kostet Geld, anhand des API-Keys können die Anfragen abgerechnet werden.
  3. Logging und Monitoring

Datenformate

Weil APIs in der Regel automatisiert durch Software angesprochen werden, müssen die Daten in einem für Maschinen verständlichen Format übertragen werden. Das gängiste Format ist JSON, früher wurde auch häufig XML verwendet.

Alle Programmiersprachen können diese Datenformate verstehen und somit die Daten für verschiedenste Zwecke weiterverarbeiten.

Beispiel für einen JSON-Datensatz

{
  "droplets": [
    {
      "id": 551166964,
      "name": "itadm01",
      "memory": 512,
      "vcpus": 1,
      "disk": 10,
      "locked": false,
      "status": "new",
      "kernel": null,
      "created_at": "2026-02-12T10:10:24Z",
      "image": {
        "id": 195932981,
        "name": "24.04 (LTS) x64",
        "distribution": "Ubuntu",
        "slug": "ubuntu-24-04-x64",
        "public": true,
        "created_at": "2025-08-08T15:11:27Z",
        "min_disk_size": 7,
        "type": "base",
        "size_gigabytes": 3.76,
        "description": "Ubuntu 24.04 (LTS) x64",
        "tags": [],
        "status": "available"
      },
      ... noch mehr daten ...
    }
  ],
  "links": {},
  "meta": {
    "total": 1
  }
}

Arbeiten mit APIs

Dokumentation

Wenn wir mit einer API arbeiten wollen, müssen wir zunächst einmal die passende Dokumentation zur API finden. Diese wird in der Regel vom Anbieter selbst bereitgestellt und sollte über Google leicht zu finden sein. Als Beispiel können wir uns die Dokumentation der freien Pokemon-API angucken: https://pokeapi.co/docs/v2

Meistens gibt es ein Inhaltsverzeichnis in dem sämtliche Funktionen der API aufgelistet sind. Die verschiedenen Funktionen der API sind durch sogenannte Endpoints definiert. So gibt es bei der Pokemon API verschiedene Endpoints für unterschiedliche Datentypen.

Wenn man weiß, was man über die API abfragen möchte, sollte man durch das Inhaltsverzeichnis relativ schnell den passenden Endpoint finden. Zu dem Endpoint gibt es in der Regel auch ein Beispiel, welches zeigt wie dieser zu benutzen ist.

API Client Software

Für das Testen von APIs empfiehlt es sich einen API-Client zu nutzen. Im Grunde sind das HTTP-Clients also eine Art Browser der uns aber deutlich mehr Kontrolle darüber gibt, wie die HTTP-Anfragen die wir an die API stellen formuliert sind.

Wir können gezielt Header, Parameter, HTTP-Anfragemethoden und vieles mehr definieren, um den Anforderungen der API-Endpoints gerecht zu werden.

Es giebt einige unterschiedliche Softwarelösungen, ich empfehle euch Bruno. Lösungen wie Postman oder Insomnia sind genauso gut, bieten aber zusätzlich zur Software auch Online-Dienste, welche in den meisten Fällen nicht notwendig sind.

Beispiel mit Pokemon API

Über den folgenden Button schickt dein Browser eine API-Anfrage, probier es selbst aus!

Code anzeigen
<div id="pokemon-display">
  <img id="pokemon-image" src="" alt="Pokemon Image" />
  <div>
  	<span id="pokemon-name"></span><br />
  	ID: <span id="pokemon-id"></span><br />
  	Types: <span id="pokemon-types"></span>
  </div>
</div>
<script>
  async function getPokemonFromAPI() {
    const randomId = Math.floor(Math.random() * 151) + 1;
    const response = await fetch(`https://pokeapi.co/api/v2/pokemon/${randomId}`);
    const data = await response.json();
    document.getElementById('pokemon-image').src = data.sprites.front_default;
    document.getElementById('pokemon-name').innerHTML = data.name;
    document.getElementById('pokemon-id').innerHTML = data.id;
    document.getElementById('pokemon-types').innerHTML = data.types.map((entry) => entry.type.name).join(', ');
  }
</script>