Eine API (Application Programming Interface) ist eine definierte Schnittstelle, über die zwei Programme miteinander kommunizieren. Sie legt fest, welche Operationen verfügbar sind, in welchem Format Daten ausgetauscht werden und welche Bedingungen gelten — und blendet die innere Implementierung bewusst aus.
APIs gibt es auf vielen Ebenen: Bibliotheks-APIs innerhalb eines Programms, Betriebssystem-APIs (z. B. POSIX, Win32) und Netzwerk-APIs zwischen Systemen. Im aktuellen Sprachgebrauch ist meist eine Web-API gemeint — eine Schnittstelle, die über HTTP angesprochen wird.
Web-APIs
Web-APIs werden typischerweise über HTTP oder HTTPS angesprochen. Sie folgen meist einem von mehreren Stilen:
- REST — ressourcenorientiert, basiert auf HTTP-Methoden und URLs.
- GraphQL — eine Abfragesprache, mit der Clients gezielt nur die Daten anfordern, die sie benötigen.
- gRPC — binäres, schemabasiertes Protokoll auf HTTP/2, häufig für Service-zu-Service-Kommunikation.
- SOAP — älterer, XML-basierter Stil, vor allem in Unternehmenslandschaften noch anzutreffen.
Vertrag und Dokumentation
Eine API ist nur so nützlich wie ihre Spezifikation. Üblich sind formale Beschreibungen:
- OpenAPI für REST-APIs.
- GraphQL Schema als Teil der Sprache selbst.
- Protocol Buffers für gRPC.
Solche Schemata erlauben Validierung, automatische Code-Generierung und maschinelle Tests.
Authentifizierung
Web-APIs schützen sich üblicherweise gegen unbefugten Zugriff. Verbreitete Mechanismen:
- API-Keys — einfache, statische Tokens.
- OAuth 2.0 — delegierter Zugriff im Namen eines Nutzers.
- JWT — signierte Tokens, die Identität und Berechtigungen tragen.
- mTLS — gegenseitige TLS-Authentifizierung mit Zertifikaten.
Versionierung
Eine API ist ein Vertrag. Damit Änderungen Bestandskunden nicht überraschen, werden APIs üblicherweise versioniert — über den Pfad (/v1/, /v2/), Header oder Mediatypen. Größere Brüche bekommen eine neue Version, kleinere additive Änderungen bleiben rückwärtskompatibel.