Status Code 202 Accepted: Die Bedeutung für APIs

INEZA Felin-Michel

INEZA Felin-Michel

15 September 2025

Status Code 202 Accepted: Die Bedeutung für APIs

Sie haben gerade auf eine Schaltfläche geklickt, um einen komplexen Bericht auszuführen. Oder Sie haben vielleicht einen Video-Transkodierungsauftrag angefordert. Anstatt dass die Seite minutenlang einfriert, erhalten Sie sofort eine Nachricht: „Ihre Anfrage wurde zur Bearbeitung angenommen.“ Wenige Minuten später erhalten Sie eine E-Mail mit einem Link zu Ihrem fertigen Bericht.

Dieses reibungslose, asynchrone Erlebnis ist ein Kennzeichen gut konzipierter moderner Software. Und es wird durch einen entscheidenden, doch oft missverstandenen HTTP-Statuscode ermöglicht: 202 Accepted.

Im Gegensatz zu seinem Verwandten 200 OK, der „Ich bin jetzt fertig“ bedeutet, oder 201 Created, der „Ich habe etwas Neues erstellt“ bedeutet, geht es beim Statuscode 202 Accepted darum, Erwartungen zu managen. Es ist die Art und Weise des Servers zu sagen: „Nachricht erhalten. Ich verstehe, was Sie von mir wollen. Ich kann Ihnen das Ergebnis jetzt nicht liefern, aber ich habe es in die Warteschlange gestellt und werde mich darum kümmern. Sie müssen nicht warten.“

Es ist das digitale Äquivalent dazu, einem vielbeschäftigten Restaurantmitarbeiter Ihr Ticket zu geben. Sie bringen Ihnen nicht sofort Essen, aber Sie vertrauen darauf, dass Ihr Platz in der Schlange sicher ist und Ihr Essen irgendwann fertig sein wird.

Wenn Sie APIs entwickeln oder nutzen, die langwierige Aufgaben verarbeiten, ist das Verständnis von 202 Accepted entscheidend für die Erstellung reaktionsschneller, skalierbarer und benutzerfreundlicher Anwendungen.

Was bedeutet das also, und warum ist es wichtig, dass Entwickler, Tester und API-Konsumenten es verstehen?

Bevor wir uns mit den Mechanismen befassen: Wenn Sie APIs entwerfen, die asynchrone Workflows erfordern, benötigen Sie ein Tool, das Ihnen hilft, diese komplexen Interaktionen zu testen und zu visualisieren. Laden Sie Apidog kostenlos herunter; es ist eine All-in-One-API-Plattform, mit der Sie `202`-Antworten einfach simulieren, Polling-Mechanismen testen und sicherstellen können, dass Ihre asynchronen Prozesse robust und zuverlässig sind.

button

Lassen Sie uns nun aufschlüsseln, was 202 Accepted bedeutet, wann man es verwendet und wie man es korrekt implementiert.

Die Bühne bereiten: Das Problem des synchronen Denkens

Um zu verstehen, warum 202 notwendig ist, müssen wir zunächst die Einschränkungen synchroner Anfragen erkennen.

Der typische HTTP-Anfrage-Antwort-Zyklus ist synchron und blockierend:

  1. Client: Sendet eine Anfrage.
  2. Client: Wartet... (dies wird oft als "Time to First Byte" oder TTFB bezeichnet).
  3. Server: Verarbeitet die Anfrage (dies kann komplexe Berechnungen, Datenbankabfragen, Aufrufe anderer Dienste umfassen).
  4. Server: Sendet eine Antwort (200 OK, 201 Created usw.).
  5. Client: Empfängt die Antwort und reagiert darauf.

Dieses Modell funktioniert perfekt für schnelle Operationen wie das Abrufen eines Benutzerprofils, das Auflisten von Produkten oder das Aktualisieren eines einzelnen Feldes. Aber was, wenn die Operation 5 Sekunden dauert? 30 Sekunden? 5 Minuten?

Der Statuscode 202 Accepted ist die elegante Lösung für dieses Problem. Er durchbricht die blockierende Natur von HTTP und ermöglicht asynchrone Verarbeitung.

Was bedeutet HTTP 202 Accepted wirklich?

Der HTTP-Statuscode 202 Accepted ist im RFC als Erfolgsantwort definiert. Es handelt sich jedoch um eine sehr spezifische Art von Erfolg. Der Statuscode 202 Accepted gehört zur 2xx-Kategorie, die im Allgemeinen Erfolg anzeigt. Er bedeutet, dass:

Im Gegensatz zu 200 OK, was bedeutet, dass die Anfrage erfolgreich bearbeitet und abgeschlossen wurde, sagt uns 202 etwas anderes:

Der Server hat die Anfrage angenommen, aber die Verarbeitung ist noch nicht abgeschlossen.

Entscheidend ist, dass die Antwort dem Client einen Hinweis geben sollte, wo er den Status der Anfrage überprüfen kann oder wo das Endergebnis in Zukunft verfügbar sein wird.

Mit anderen Worten, 202 ist die höfliche Art des Servers zu sagen:

„Hey, ich habe Ihre Anfrage erhalten. Ich arbeite daran. Aber erwarten Sie das Ergebnis nicht sofort.“

Dies macht es besonders nützlich für asynchrone Operationen, die Zeit in Anspruch nehmen, wie das Senden einer E-Mail, die Verarbeitung eines großen Datensatzes oder das Starten eines Hintergrundjobs.

Warum gibt es 202 Accepted?

Nicht alle Anfragen können sofort bearbeitet werden. Stellen Sie sich vor, jedes Mal, wenn Sie einen API-Aufruf senden, müsste der Server warten, bis der gesamte Auftrag abgeschlossen ist, bevor er antwortet. Das könnte zu Folgendem führen:

Der 202 Statuscode löst dieses Problem, indem er Servern ermöglicht, Anfragen zu bestätigen, ohne dass Clients warten müssen.

Der asynchrone Workflow: Eine Schritt-für-Schritt-Analyse

Gehen wir ein konkretes Beispiel durch. Stellen Sie sich eine API zur Generierung personalisierter Datenberichte vor.

Schritt 1: Die Anfrage des Clients

Eine Client-Anwendung sendet eine POST-Anfrage, um die Berichtsgenerierung zu starten.

POST /api/reports/generate HTTP/1.1Host: api.example.comContent-Type: application/jsonAuthorization: Bearer <token>
{
  "type": "annual_sales",
  "year": 2023,
  "format": "pdf"
}

Schritt 2: Die 202-Antwort des Servers

Der Server empfängt die Anfrage. Er validiert, dass die Anfrage wohlgeformt ist und der Benutzer autorisiert ist. Anschließend platziert er den Auftrag sofort in eine Verarbeitungswarteschlange (unter Verwendung eines Systems wie Redis, RabbitMQ oder Amazon SQS) und antwortet.

HTTP/1.1 202 AcceptedLocation: <https://api.example.com/api/reports/status/job-12345Content-Type:> application/json
{
  "message": "Your report generation request has been accepted and is being processed.",
  "job_id": "job-12345",
  "status_url": "<https://api.example.com/api/reports/status/job-12345>",
  "estimated_completion_time": "2023-10-27T10:05:00Z"
}

Diese Antwort ist unglaublich mächtig. Lassen Sie uns sie aufschlüsseln:

Schritt 3: Die asynchrone Verarbeitung

Der Client kann nun andere Dinge tun. Währenddessen auf dem Server:

Schritt 4: Der Client überprüft den Abschluss

Der Client kann nun die in der 202-Antwort bereitgestellte `status_url` abfragen (pollen).

GET https://api.example.com/api/reports/status/job-12345

Die Antwort auf diese Polling-Anfrage kann sich im Laufe der Zeit ändern:

Alternativ könnte der Server eine Benachrichtigung über einen Webhook an eine vom Client bereitgestellte URL senden, was ein fortschrittlicheres und effizienteres Muster als Polling ist.

Hauptmerkmale von 202 Accepted

Hier sind die wesentlichen Merkmale einer 202-Antwort:

202 Accepted vs. andere Erfolgscodes: Den Unterschied kennen

Es ist leicht, `202` mit anderen 2xx-Codes zu verwechseln. Hier ist ein einfacher Spickzettel:

Verwenden Sie `202`, wenn das Ergebnis in Zukunft verfügbar sein wird, nicht sofort.

Warum 202 Accepted verwenden? Die wichtigsten Vorteile

  1. Verbesserte Benutzererfahrung (UX): Die Client-Anwendung bleibt reaktionsfähig. Benutzer erhalten sofortiges Feedback, dass ihre Anfrage empfangen wurde, anstatt eines endlosen Ladekreises.
  2. Bessere Server-Skalierbarkeit: Die Haupt-Request-Handling-Threads des Servers werden fast sofort freigegeben. Sie delegieren die aufwendige Arbeit an Hintergrund-Worker, wodurch der Server viel mehr eingehende Anfragen bearbeiten kann.
  3. Umgang mit Unsicherheit: Der Server kann eine Anfrage annehmen, auch wenn er nicht 100% sicher ist, ob sie später erfüllt werden kann. Zum Beispiel könnte er eine Anfrage annehmen, die von einem Drittanbieterdienst abhängt, der vorübergehend nicht verfügbar ist.
  4. Realistisch für komplexe Operationen: Es modelliert genau reale Prozesse, die Zeit in Anspruch nehmen, wie das Senden von E-Mails, die Videoverarbeitung, das Ausführen von Machine-Learning-Modellen oder die Handhabung großer Datenexporte.

Praktische Anwendungsfälle für HTTP 202

Sie werden `202 Accepted` in vielen modernen Anwendungen finden:

Vorteile der Verwendung von 202 Accepted

Warum sollten Entwickler und API-Designer 202 verwenden?

  1. Verhindert Client-Timeouts: Benutzer müssen nicht warten.
  2. Verbessert die Skalierbarkeit: Server werden bei langen Aufgaben nicht blockiert.
  3. Besseres Benutzerfeedback: Statt Stille wissen Clients, dass die Anfrage bearbeitet wird.
  4. Unterstützt asynchrone Architekturen: Essenziell für moderne Microservices.

202 Accepted in asynchronen Workflows

So funktioniert es typischerweise:

  1. Client sendet eine Anfrage.
  2. Server antwortet mit 202 und möglicherweise einer „Status-URL“.
  3. Client prüft erneut den Status-Endpunkt, um zu sehen, ob der Auftrag abgeschlossen ist.

Zum Beispiel:

{
  "status": "processing",
  "check_status": "/jobs/12345/status"
}

Dieses Muster hält beide Seiten zufrieden: Der Client erhält sofort eine Bestätigung, und der Server bekommt Freiraum.

202 Workflows mit Apidog testen

Das Testen eines asynchronen API-Flows ist komplexer als das Testen eines einfachen synchronen Aufrufs. Hier erweist sich Apidog als unschätzbares Werkzeug.

Mit Apidog können Sie:

  1. Den Flow skripten: Erstellen Sie ein Testszenario, das zuerst die POST-Anfrage sendet und validiert, dass sie eine 202 mit einer status_url zurückgibt.
  2. Variablen extrahieren: Verwenden Sie Apidogs Skripting, um die job_id oder status_url automatisch aus der 202-Antwort zu extrahieren und als Umgebungsvariable zu speichern.
  3. Polling testen: Erstellen Sie eine nachfolgende GET-Anfrage, die die extrahierte Variable verwendet, um die status_url aufzurufen. Sie können Apidog so konfigurieren, dass diese Anfrage wiederholt wird, bis sie einen „completed“-Status erhält.
  4. Das Endergebnis validieren: Sobald der Auftrag abgeschlossen ist, schreiben Sie Assertions, um die endgültige Antwort von der Download-URL zu validieren.

Dies ermöglicht es Ihnen, das Testen des gesamten asynchronen Ablaufs zu automatisieren, wodurch Zuverlässigkeit gewährleistet und Regressionen abgefangen werden.

Wie man 202 Accepted-Antworten testet (mit Apidog)

Hier glänzt **Apidog**. Im Gegensatz zu statischen Tools ermöglicht Apidog Ihnen:

Mit Apidog können Sie End-to-End-202-Workflows von der Annahme bis zum Abschluss erstellen und testen, ohne Tools wechseln zu müssen.

button

Potenzielle Fallstricke und häufige Missverständnisse

Allerdings kann 202 missbräuchlich verwendet werden. Einige Fallstricke sind:

Herausforderungen und Best Practices

Die korrekte Implementierung von `202` erfordert sorgfältige Überlegung.

  1. Einen Status-Endpunkt bereitstellen: Dies ist nicht verhandelbar. Sie müssen eine URL (über den Location-Header oder den Antwortkörper) bereitstellen, unter der der Client den Fortschritt und das Endergebnis der Anfrage überprüfen kann.
  2. Idempotenz ist entscheidend: Wenn ein Client nicht sicher ist, ob seine Anfrage durchgegangen ist (z. B. aufgrund eines Netzwerkproblems), könnte er es erneut versuchen. Ihre API sollte so konzipiert sein, dass sie doppelte Anfragen elegant behandelt, indem Idempotenzschlüssel verwendet werden, um zu verhindern, dass derselbe Auftrag mehrfach in die Warteschlange gestellt wird.
  3. Klare Erwartungen setzen: Verwenden Sie den Antwortkörper, um eine geschätzte Abschlusszeit oder eine einfache Statusmeldung (queued, processing, failed, succeeded) anzugeben.
  4. Webhooks in Betracht ziehen: Für eine effizientere Alternative zum Polling ermöglichen Sie Clients, eine Webhook-URL zu registrieren, die Ihr Server aufruft, wenn der Auftrag abgeschlossen ist.
  5. Für Fehler planen: Der Auftrag könnte im Hintergrund fehlschlagen. Ihr Status-Endpunkt muss Fehler kommunizieren und gegebenenfalls Fehlercodes bereitstellen.

Best Practices für die Implementierung von 202 Accepted

Wenn Sie APIs entwerfen, die 202 zurückgeben, beachten Sie diese Best Practices:

202 Accepted in REST- vs. GraphQL-APIs

Fazit: Asynchrones Design annehmen

Der HTTP-Statuscode `202 Accepted` ist ein mächtiges Werkzeug im Werkzeugkasten des API-Designers. Er stellt einen Wandel dar, APIs nicht mehr als einfache Anfrage-Antwort-Mechanismen zu betrachten, sondern als Systeme zur Orchestrierung komplexer, realer Workflows. Der 202 Accepted-Statuscode mag nicht der bekannteste HTTP-Code sein, aber er spielt eine entscheidende Rolle in asynchronen API-Workflows. Er sagt Clients: „Wir haben Ihre Anfrage erhalten, aber wir arbeiten noch daran.“

Durch die Verwendung von `202` erstellen Sie APIs, die skalierbarer, widerstandsfähiger sind und eine weitaus überlegenere Erfahrung für die Entwickler, die sie nutzen, und die Endbenutzer, die letztendlich davon profitieren, bieten.

Es erkennt an, dass nicht alles in der Software sofort geschieht, und bietet eine standardisierte, robuste Möglichkeit, diese Realität zu handhaben.

Wenn Sie also das nächste Mal einen Endpunkt für eine langwierige Aufgabe entwerfen, zwingen Sie ihn nicht, synchron zu sein. Nehmen Sie die asynchrone Natur der Aufgabe an. Geben Sie einen `202 Accepted` zurück, stellen Sie eine Status-URL bereit und befreien Sie Ihre Anwendung von der Tyrannei der wartenden Anfrage. Wenn Sie APIs entwickeln oder testen, die 202 zurückgeben, benötigen Sie Tools, mit denen Sie diese Workflows problemlos simulieren, testen und dokumentieren können. Genau das bietet Apidog. Verwenden Sie ein Tool wie Apidog, um sicherzustellen, dass Ihre Implementierung robust, testbar und eine Freude bei der Integration ist. Bereit, Ihr API-Testing und Ihre Dokumentation zu vereinfachen? Laden Sie Apidog noch heute kostenlos herunter und machen Sie den Umgang mit Codes wie 202 Accepted mühelos.

button

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen