Serverantwort 422 Unprocessable Entity
HTTP-Statuscode 422 (Unprocessable Entity)
Der HTTP-Statuscode 422 zeigt an, dass der Server den Inhalt der Anfrage verstanden hat, jedoch aufgrund semantischer Fehler nicht verarbeiten kann. Dies kann in verschiedenen Situationen auftreten, in denen die bereitgestellten Daten nicht den Anforderungen des Servers entsprechen.
Definition und Anwendung des Statuscodes 422
Der Statuscode 422 bedeutet, dass der Server die Anfrage zwar empfangen hat, aber die enthaltenen Daten nicht verarbeiten kann. Dies geschieht häufig aufgrund von Fehlern in der Semantik der übermittelten Informationen.
Situationen, in denen der Statuscode 422 auftreten kann
- Nicht unterstütztes Datenformat
- Fehlende erforderliche Felder
- Ungültige Werte in den Feldern
Praktische Beispiele für die Verwendung des Statuscodes 422
Beispiel 1: Validierungsfehler bei einem Formular
Ein Benutzer sendet ein Formular mit unvollständigen oder fehlerhaften Daten. Der Server antwortet mit dem Statuscode 422 und gibt eine detaillierte Beschreibung der aufgetretenen Fehler zurück.
Beispiel 2: Datenverarbeitung in einer API
Wenn der Server die eingehenden Daten nicht verarbeiten kann, gibt er den Statuscode 422 zurück. Ein Beispiel für eine Antwort könnte die Angabe spezifischer Fehler in den Daten sein.
Beispiel 3: Arbeiten mit Dateien
Wenn ein Benutzer versucht, eine Datei in einem nicht unterstützten Format hochzuladen, antwortet der Server mit dem Statuscode 422 und weist auf den Grund für die Ablehnung hin.
Fehlerbehebung, die den Statuscode 422 verursacht
Fehlerbehebung in JavaScript
- Beispielcode, der einen Fehler verursacht:
- Korrektur des Codes zur richtigen Verarbeitung der Daten:
fetch('/api/data', {
method: 'POST',
body: JSON.stringify({ name: '' }) // Fehlendes Pflichtfeld
});
fetch('/api/data', {
method: 'POST',
body: JSON.stringify({ name: 'Max' }) // Korrekt
});
Fehlerbehebung in Python
- Beispiel eines fehlerhaften Antrags:
- Verwendung von Datenvalidierung zur Fehlervermeidung:
response = requests.post('/api/data', json={'email': 'invalid_email'}) # Ungültige E-Mail-Adresse
if validate_email(email):
response = requests.post('/api/data', json={'email': email}) # Korrekte E-Mail-Adresse
Fehlerbehebung in PHP
- Beispiel für einen API-Aufruf mit fehlerhaften Daten:
- So konfigurieren Sie den Server zur richtigen Verarbeitung:
$response = $client->post('/api/data', ['json' => ['age' => 'twenty']]); // Ungültiger Wert
if (is_numeric($age)) {
$response = $client->post('/api/data', ['json' => ['age' => $age]]); // Korrekt
}
Empfehlungen zur Vermeidung des Statuscodes 422
- Validierung der Daten auf der Client-Seite
- Klare Dokumentation der API-Anforderungen
- Fehlerprotokollierung zur Vereinfachung der Diagnose