Was ist eine API?

  • Beitrags-Autor:
  • Beitrags-Kategorie:Java

Eine API ist eine Schnittstelle, über die Programme miteinander sprechen können. API steht für Application Programming Interface.

Auf Deutsch kann man vereinfacht sagen:

Eine API ist ein festgelegter Weg, wie eine Software Funktionen oder Daten für andere Software bereitstellt.

Wenn ein Programm Informationen von einem anderen Programm braucht, passiert das oft über eine API.

Das kann zum Beispiel sein:

  • Wetterdaten abrufen
  • Zahlungsdaten verarbeiten
  • Benutzer anmelden
  • Produkte aus einem Shop laden
  • Nachrichten an einen Dienst schicken
  • Daten aus einem ERP oder SAP-System lesen

Warum sind APIs wichtig?

In moderner Software arbeitet fast nie alles komplett für sich allein. Stattdessen greifen Systeme ständig auf andere Systeme zu.

Ein paar typische Beispiele:

  • ein Webshop holt Zahlungsinformationen von einem Zahlungsanbieter
  • eine App zeigt Kartendaten von einem Kartendienst an
  • ein Frontend lädt Kundendaten aus einem Backend
  • ein Java-Programm ruft eine externe AI- oder Wetter-API auf
  • ein SAP-nahes System liefert Daten an ein anderes Tool

Ohne APIs müsste jede Software alles selbst können. Das wäre langsam, unübersichtlich und teuer. APIs sorgen dafür, dass Programme Aufgaben aufteilen können.

Ein einfaches Bild dazu

Man kann sich eine API wie einen Kellner im Restaurant vorstellen.

Du sitzt nicht in der Küche und kochst selbst. Stattdessen sagst du dem Kellner, was du willst. Der Kellner nimmt deine Bestellung auf, bringt sie in die Küche und kommt mit dem Ergebnis zurück.

In dieser Analogie:

  • du bist das aufrufende Programm
  • der Kellner ist die API
  • die Küche ist das System, das etwas für dich erledigt
  • das Essen ist die Antwort

Wichtig ist dabei: Du musst nicht wissen, wie die Küche intern alles macht. Du musst nur wissen:

  • was du bestellen darfst
  • wie du bestellen musst
  • was du zurückbekommst

Genau so funktionieren APIs auch.

Was macht eine API konkret?

Eine API legt fest:

  • welche Anfragen erlaubt sind
  • welche Daten übergeben werden müssen
  • welche Antwort zurückkommt
  • welche Fehler auftreten können

Eine API ist also nicht einfach nur „irgendeine Verbindung“. Sie ist ein klar definiertes Regelwerk.

API im Alltag eines Entwicklers

Wenn Entwickler von APIs sprechen, meinen sie oft Web-APIs.

Zum Beispiel:

  • GET /users
  • POST /login
  • GET /products/42

So ein Aufruf bedeutet:

  • ein Programm sendet eine Anfrage
  • ein Server verarbeitet die Anfrage
  • der Server liefert eine Antwort zurück

Die Antwort ist häufig im JSON-Format, aber nicht zwingend.

Was ist der Unterschied zwischen UI und API?

Das wird oft verwechselt.

Eine UI ist die Oberfläche für Menschen. Eine API ist die Schnittstelle für Programme.

Beispiel:

  • Auf einer Website klickst du auf „Login“. Das ist UI.
  • Im Hintergrund wird ein Request an ein Backend geschickt. Das ist API.

Der Nutzer sieht also meist nur die Oberfläche. Im Hintergrund arbeiten aber oft mehrere APIs zusammen.

Ein Beispiel ohne Code

Stell dir vor, du nutzt eine Wetter-App.

Die App zeigt dir:

  • Temperatur
  • Regenwahrscheinlichkeit
  • Wind

Die App misst das meistens nicht selbst. Sie fragt dafür eine Wetter-API an.

Der Ablauf ist dann ungefähr so:

  1. Die App sendet eine Anfrage an die Wetter-API.
  2. Die Wetter-API verarbeitet die Anfrage.
  3. Die API liefert Wetterdaten zurück.
  4. Die App zeigt die Daten auf dem Bildschirm an.

Die App ist also der Nutzer der API.

Request und Response einfach erklärt

Zwei Begriffe kommen bei APIs ständig vor:

Request

Der Request ist die Anfrage.

Ein Programm sagt damit sinngemäß:

  • Gib mir Daten
  • Speichere diese Daten
  • Ändere etwas
  • Lösche etwas

Response

Die Response ist die Antwort.

Die Antwort kann sein:

  • die gewünschten Daten
  • eine Bestätigung
  • eine Fehlermeldung

Beispiel:

  • Request: „Gib mir den Benutzer mit der ID 5“
  • Response: „Hier sind die Daten von Benutzer 5“

Ein einfaches API-Beispiel in Java

Damit das nicht zu theoretisch bleibt, hier ein kleines Beispiel mit Java.

Dieses Beispiel ruft eine öffentliche Test-API auf und lädt einen Beispiel-Post.

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class ApiExample {

    public static void main(String[] args) throws IOException, InterruptedException {
        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://jsonplaceholder.typicode.com/posts/1"))
                .GET()
                .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        System.out.println("Status: " + response.statusCode());
        System.out.println("Antwort: " + response.body());
    }
}

Was passiert in diesem Code?

Der Code macht Folgendes:

  • erstellt einen HTTP-Client
  • baut eine Anfrage an eine URL
  • sendet die Anfrage
  • speichert die Antwort
  • gibt Statuscode und Inhalt aus

Der wichtige Punkt ist nicht jedes Detail des Codes. Wichtiger ist das Grundprinzip:

  • Java ist der Client
  • eine externe Schnittstelle wird aufgerufen
  • die API liefert Daten zurück

Genau das ist API-Nutzung in der Praxis.

Wie sieht die Antwort aus?

Die Antwort könnte zum Beispiel so aussehen:

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit suscipit recusandae consequuntur expedita et cum"
}

Das ist JSON.

JSON ist ein sehr verbreitetes Format für Daten, die über APIs übertragen werden. Genau dazu passt später der Folgeartikel Was ist JSON?.

Ist jede API eine REST API?

Nein.

Das wird oft durcheinandergebracht.

API ist der Oberbegriff. REST API ist eine bestimmte Art von API.

Das heißt:

  • jede REST API ist eine API
  • aber nicht jede API ist eine REST API

Es gibt zum Beispiel auch:

  • Bibliotheks-APIs in Java
  • Datenbank-Schnittstellen
  • GraphQL APIs
  • SOAP APIs
  • OData APIs

REST ist also nur ein Teil des größeren API-Themas. Der nächste logische Schritt ist deshalb der Artikel Was ist REST?.

Wo begegnen dir APIs als Java-Entwickler?

Als Java-Entwickler hast du APIs in mehreren Formen:

1. APIs von Java-Bibliotheken

Zum Beispiel Methoden aus:

  • List
  • Map
  • String
  • HttpClient

Auch das sind APIs, weil sie festlegen, wie du Funktionen nutzen darfst.

2. Web-APIs externer Dienste

Zum Beispiel:

  • Zahlungsanbieter
  • Wetterdienste
  • AI-Dienste
  • Authentifizierung
  • Versanddienste

Wenn du sehen willst, wie man so eine API konkret aus Java nutzt, passt dazu auch Wie man die ChatGPT API in Java nutzen kann oder der englische Beitrag Integrating Java with ChatGPT API: A Step-by-Step Guide for GPT-3.5.

3. Eigene APIs im Backend

Wenn du mit Spring Boot arbeitest, baust du oft selbst APIs, damit Frontends oder andere Systeme Daten abrufen können.

Typische Missverständnisse

„API ist nur etwas für große Systeme“

Nein. Schon kleine Anwendungen können APIs nutzen oder anbieten.

„API bedeutet immer Internet“

Nein. Eine API kann auch lokal in einer Bibliothek existieren.

„API und REST sind dasselbe“

Nein. REST ist nur eine spezielle Form.

„Man muss die komplette Technik dahinter verstehen“

Nein. Für den Einstieg reicht es, das Grundprinzip aus Request und Response zu verstehen.

Warum ist das Thema so wichtig für Anfänger?

Wenn du moderne Entwicklung verstehen willst, kommst du an APIs nicht vorbei.

Denn sehr viele Dinge bauen darauf auf:

  • Webanwendungen
  • Mobile Apps
  • Microservices
  • Cloud-Dienste
  • SAP-Integrationen
  • Frontend-Backend-Kommunikation
  • Automationen

Wer APIs versteht, versteht moderne Software deutlich besser.

API, REST und OData, wie hängt das zusammen?

Ganz grob:

  • API ist der Oberbegriff
  • REST ist ein verbreiteter Stil für Web-APIs
  • OData baut auf Web- und HTTP-Konzepten auf und definiert zusätzliche Regeln für den Zugriff auf Daten

Wenn du also später Themen wie REST, OData, CAP oder SAP APIs verstehen willst, brauchst du zuerst ein sauberes API-Grundverständnis.

Fazit

Eine API ist eine Schnittstelle, über die Programme miteinander sprechen.

Sie legt fest:

  • wie eine Anfrage aussieht
  • welche Daten übergeben werden
  • welche Antwort zurückkommt
  • wie Fehler behandelt werden

Für Einsteiger ist vor allem dieses Bild wichtig:

Eine API ist der definierte Weg, über den Software Daten oder Funktionen mit anderer Software austauscht.

Wenn du das verstanden hast, bist du schon deutlich näher an moderner Entwicklung dran.

Nächster Schritt

Wenn du das Grundprinzip verstanden hast, sind diese Themen die nächsten sinnvollen Schritte: