News

API Schnittstelle: Definition, Beispiel, Praxis

· DigifyNow

Eine API Schnittstelle ist eine fest vereinbarte Art, wie zwei Programme miteinander reden. Ein System schickt eine Anfrage an eine bestimmte Adresse, den Endpunkt. Das passiert meist über HTTPS mit einer Methode wie GET oder POST und einem Zugangsschlüssel. Das andere System antwortet mit strukturierten Daten, meist JSON, und einem Statuscode wie 200 oder 401. Bevor Sie eine Anbindung beauftragen, prüfen Sie: Haben beide Systeme eine dokumentierte API? Welche Daten geben sie frei? Und welche Abrufgrenzen gelten?

Was ist eine API-Schnittstelle? Die Definition

API steht für Application Programming Interface, also Programmierschnittstelle. Streng genommen ist „API Schnittstelle“ doppelt gemoppelt, denn das I steht schon für Interface. Im Alltag sagt man es trotzdem so, und gemeint ist immer dasselbe: ein festgelegter Satz von Regeln. Er bestimmt, welche Anfragen ein Programm an ein anderes stellen darf, in welchem Format die Daten kommen müssen und was zurückkommt. Anders als eine Benutzeroberfläche ist eine API nicht für Menschen gedacht, sondern für Software. Dabei gibt es mehrere Arten. Betriebssysteme und Programmbibliotheken haben APIs, die nur innerhalb eines Programms aufgerufen werden. Wenn im Mittelstand von einer Schnittstelle zwischen Shop, CRM und Buchhaltung die Rede ist, geht es aber fast immer um eine Web-API. Sie läuft über das Internet und nutzt HTTP, dessen Methoden und Statuscodes in RFC 9110 festgelegt sind. Die häufigste Bauart ist REST. Den Begriff hat Roy Fielding im Jahr 2000 in seiner Dissertation geprägt. Daneben gibt es GraphQL und das ältere, XML-basierte SOAP. Keine API im engeren Sinn ist ein CSV-Export, den jemand per Hand hoch- und runterlädt. Das ist eine Dateischnittstelle: Sie hat keine feste Anfrage und keine direkte Antwort.

Illustration zum Abschnitt „Was ist eine API-Schnittstelle? Die Definition“
KI-generiertes Bild

API-Schnittstelle einfach erklärt: Was passiert bei einer Anfrage?

Stellen Sie sich ein Bestellformular mit festen Feldern vor. Wer es falsch ausfüllt, bekommt es mit einem Vermerk zurück. So arbeitet eine Web-API. Eine Anfrage, der Request, besteht aus vier Teilen. Der Endpunkt ist die Adresse, etwa …/kunden/1042. Die Methode sagt, was passieren soll: GET liest, POST legt etwas an, PUT oder PATCH ändert, DELETE löscht. Im Header stehen Zusatzangaben, vor allem der Zugangsschlüssel. Der Body enthält bei Änderungen die Daten selbst, fast immer als JSON nach RFC 8259. Die Antwort, die Response, enthält einen dreistelligen Statuscode und meist wieder JSON, zum Beispiel {"id": 1042, "name": "Muster GmbH"}. An den Statuscodes sieht man schnell, wo ein Problem liegt. Codes, die mit 4 beginnen, bedeuten: Die Anfrage war fehlerhaft. Codes mit 5 bedeuten: Die Gegenseite hat ein Problem.

Häufige HTTP-Statuscodes nach RFC 9110 und RFC 6585 (429)
StatuscodeBedeutungTypischer Auslöser in der Praxis
200 OKAnfrage erfolgreich, Daten in der AntwortNormaler Lesezugriff
201 CreatedDatensatz wurde angelegtPOST einer neuen Bestellung
400 Bad RequestAnfrage formal fehlerhaftPflichtfeld fehlt, falsches Datumsformat
401 UnauthorizedKeine gültige AnmeldungToken abgelaufen oder Schlüssel falsch
403 ForbiddenAngemeldet, aber nicht berechtigtSchlüssel hat nur Leserechte
404 Not FoundEndpunkt oder Datensatz existiert nichtDatensatz gelöscht, falsche URL
429 Too Many RequestsAbrufgrenze überschrittenZu viele Anfragen pro Minute
500 Internal Server ErrorFehler auf der GegenseiteStörung beim Anbieter

Wie sieht ein Beispiel für eine API-Schnittstelle aus?

Ein typischer Fall aus dem Mittelstand: Ein Onlineshop soll jede bezahlte Bestellung automatisch an die Warenwirtschaft übergeben, und die Sendungsnummer soll zurückfließen. Ohne Schnittstelle tippt jemand die Bestellung ab, mit allen Tippfehlern, die dazugehören. Mit API läuft es so ab. Der Shop schickt einen Webhook, sobald eine Zahlung eingeht. Das ist eine kurze HTTP-Nachricht an eine Adresse, die wir festlegen, mit der Bestellnummer darin. Unser Dienst holt sich per GET die vollständige Bestellung mit Positionen, Lieferadresse und Steuersätzen. Dann ordnet er die Felder zu, denn „sku“ im Shop heißt in der Warenwirtschaft vielleicht „Artikelnummer“. Anschließend legt er den Auftrag per POST an. Kommt 201 zurück, wird die Bestellung als übertragen markiert. Versendet das Lager, schreibt ein PATCH die Sendungsnummer zurück in den Shop. Der Webhook ist dabei der Auslöser, die API liefert die Daten. Die Alternative zum Webhook heißt Polling: Ein Dienst fragt dann zum Beispiel alle fünf Minuten nach neuen Bestellungen. Das ist einfacher, belastet aber die Abrufgrenzen und kommt verzögert an. Wer ein eigenes Frontend für Shopify plant, steht vor derselben Frage, nur in größerem Umfang.

Illustration zur Frage „Wie sieht ein Beispiel für eine API-Schnittstelle aus?“
KI-generiertes Bild

API-Schnittstelle programmieren: Welche Schritte braucht es?

Eine API-Schnittstelle zu programmieren heißt im Mittelstand meist nicht, eine API neu zu erfinden. Man schreibt einen kleinen Dienst, der zwei vorhandene APIs miteinander verbindet. Bei DigifyNow gehen wir dabei in diesen Schritten vor:

  1. Datenfluss festlegen: Welches System ist für welches Feld führend? Wie oft wird synchronisiert, in Echtzeit per Webhook oder in festen Abständen?
  2. Dokumentation der Gegenseite prüfen: Gibt es eine Beschreibung nach OpenAPI 3.x, eine Testumgebung (Sandbox) und veröffentlichte Abrufgrenzen pro Minute oder Tag?
  3. Authentifizierung einrichten: entweder ein API-Schlüssel oder OAuth 2.0 nach RFC 6749 mit kurzlebigen Zugangstokens und einem Refresh-Token. Schlüssel liegen nur auf dem Server, nie im App- oder Browsercode.
  4. Felder zuordnen und Formate angleichen: Datumswerte nach ISO 8601 mit Zeitzone, Beträge als Dezimalzahl statt Gleitkommazahl, Pflichtfelder prüfen.
  5. Fehlerbehandlung bauen: bei 429 und 5xx erneut versuchen, mit wachsenden Wartezeiten und unter Beachtung des Retry-After-Headers. Ein Idempotenzschlüssel sorgt dafür, dass eine wiederholte Anfrage keinen doppelten Auftrag anlegt.
  6. Protokollieren und überwachen: Jede fehlgeschlagene Übertragung landet in einer Liste mit Grund und kann erneut gesendet werden. Sonst merkt niemand, dass seit Dienstag nichts mehr ankommt.

Am längsten dauern in der Praxis fast nie die Aufrufe selbst, sondern die Schritte 1, 4 und 5. Wer Abläufe größer denken will, findet mehr dazu im Beitrag über Prozesse automatisieren im KMU.

Woran scheitern API-Anbindungen in der Praxis?

Die meisten Probleme zeigen sich nicht am ersten Tag, sondern nach Wochen. Dann sieht es so aus, als laufe die Schnittstelle „irgendwie nicht mehr richtig“. Die häufigsten Ursachen:

  • Abgelaufene Tokens: OAuth-Zugangstokens haben eine Laufzeit, die der Anbieter festlegt. Fehlt die automatische Erneuerung, kommt plötzlich nur noch 401 zurück.
  • Paginierung übersehen: Viele APIs liefern pro Anfrage nur eine Seite, oft 50 oder 100 Datensätze. Wer nicht weiterblättert, synchronisiert stillschweigend nur einen Teil.
  • Abrufgrenzen: Bei einer großen Erstübernahme oder in Spitzenzeiten antwortet die Gegenseite mit 429. Ohne Wartelogik gehen Datensätze verloren.
  • Versionswechsel: Anbieter kündigen API-Versionen ab und schalten sie nach einer Frist ab. Wer die Ankündigungen nicht verfolgt, merkt es erst beim Ausfall.
  • Doppelte Datensätze: Ein Timeout bedeutet nicht, dass nichts angekommen ist. Wird die Anfrage ohne Idempotenzschlüssel wiederholt, entstehen doppelte Aufträge.
  • Abweichende Datenmodelle: Ein Kunde mit drei Lieferadressen passt nicht in ein System, das nur eine kennt. Das ist eine fachliche Frage, keine technische.

Deshalb gehört zu einer Schnittstelle auch jemand, der sie im Betrieb beobachtet. Einmal gebaut und vergessen funktioniert nicht.

Illustration zur Frage „Woran scheitern API-Anbindungen in der Praxis?“
KI-generiertes Bild

Wann lohnt sich eine eigene API-Anbindung nicht?

Nicht jede Verbindung zwischen zwei Programmen braucht eigenen Code. Wir raten bei DigifyNow in mehreren Fällen davon ab. Erstens: Bietet eine der beiden Anwendungen schon eine fertige Integration für die andere an, ist die meist günstiger zu betreiben als eine Eigenentwicklung. Zweitens: Geht es nur um ein paar Datensätze im Monat, ist ein manueller Export oft vertretbar. Drittens: Manche ältere Branchensoftware hat gar keine API. Dann bleiben ein Dateiaustausch, ein Zugriff direkt auf die Datenbank, sofern der Hersteller ihn erlaubt, oder ein Software-Roboter, der die Oberfläche bedient. Wann sich RPA statt API eignet und warum Bots bei Oberflächen-Updates brechen, steht in einem eigenen Beitrag. Viertens: Einige Anbieter schalten die API nur in höheren Tarifen frei oder begrenzen die Aufrufe stark. Das sollten Sie vor der Planung klären. Und rechtlich gilt: Fließen personenbezogene Daten an einen externen Dienst, verlangt Art. 28 DSGVO in der Regel einen Vertrag zur Auftragsverarbeitung. Ob der vorliegt und passt, entscheidet Ihr Betrieb, nicht die Technik. Ist der Datenaustausch dagegen der Kern Ihres Geschäfts, lohnt der Vergleich Individualsoftware vs. SaaS.

Häufige Fragen

Was ist der Unterschied zwischen API und Schnittstelle?

„Schnittstelle“ ist der Oberbegriff für jede Übergabestelle zwischen Systemen, auch für einen CSV-Export oder eine Bildschirmmaske. Eine API ist eine Schnittstelle für Programme. Sie hat feste Endpunkte, Methoden und Datenformate, und auf jede Anfrage folgt sofort eine Antwort mit Statuscode. Jede API ist eine Schnittstelle, aber nicht jede Schnittstelle ist eine API.

Was ist eine REST-API?

REST ist eine Bauart für Web-APIs. Roy Fielding hat sie im Jahr 2000 beschrieben. Jede Ressource, etwa ein Kunde oder eine Bestellung, hat eine eigene Adresse. Bearbeitet wird sie mit den HTTP-Methoden GET, POST, PUT, PATCH und DELETE. Jede Anfrage enthält alle nötigen Angaben, der Server merkt sich zwischen zwei Anfragen keinen Zustand.

Was ist der Unterschied zwischen API und Webhook?

Bei einer API fragt Ihr System aktiv nach Daten (Pull). Bei einem Webhook meldet sich das andere System von selbst, sobald etwas passiert (Push), zum Beispiel bei einer neuen Zahlung. Der Webhook enthält oft nur eine ID. Die vollständigen Daten holt man danach per API. In der Praxis arbeiten beide deshalb meist zusammen.

Was ist ein API-Key und wo wird er gespeichert?

Ein API-Key ist eine lange Zeichenfolge, mit der sich ein Programm gegenüber einer API ausweist. Meist steht er im Header jeder Anfrage. Er gehört auf den Server, etwa in eine Umgebungsvariable oder einen Secret-Speicher. In einer App oder im Browsercode kann ihn jeder auslesen, der den Code untersucht.

Kostenlose Einschätzung für Ihr Projekt anfragen