Cos'è 422?

422 Unprocessable Entity

Il codice di stato HTTP 422 Unprocessable Entity indica che il server comprende la richiesta e la sintassi è corretta, ma non è in grado di elaborare le istruzioni contenute in essa. Questo avviene tipicamente quando la richiesta contiene <a href="https://it.wikiwhat.page/kavramlar/dati%20non%20validi">dati non validi</a> o errati che violano le <a href="https://it.wikiwhat.page/kavramlar/regole%20di%20validazione">regole di validazione</a> stabilite dal server.

A differenza di un errore 400 Bad Request, che indica un problema sintattico con la richiesta stessa, un 422 Unprocessable Entity segnala che la richiesta è sintatticamente corretta, ma i dati in essa contenuti non sono semantici o validi.

Cause comuni:

  • Errori di validazione lato server (es. campi obbligatori mancanti, formati errati).
  • Violazione di vincoli di integrità dei dati (es. chiave esterna non esistente).
  • Tentativo di inserire dati duplicati quando non consentito.
  • Incoerenza tra i dati forniti.

Risposta tipica:

La risposta dovrebbe includere un body che specifica i motivi per cui la richiesta non è stata elaborata. Questo può essere in formato JSON o XML, con un elenco dettagliato degli errori di validazione rilevati. Questo aiuta il <a href="https://it.wikiwhat.page/kavramlar/client">client</a> a correggere la richiesta e inviarla nuovamente.

Differenza da 400 Bad Request:

La differenza principale risiede nel livello di errore. 400 Bad Request indica un problema generale con la <a href="https://it.wikiwhat.page/kavramlar/sintassi%20della%20richiesta">sintassi della richiesta</a> (es. intestazioni mancanti o errate), mentre 422 Unprocessable Entity indica un problema con i dati all'interno di una richiesta sintatticamente corretta.

Esempio:

Supponiamo di avere un'API per creare utenti. Se si invia una richiesta con un campo email mancante, il server potrebbe restituire un 422 Unprocessable Entity con un body che indica che il campo email è obbligatorio.

Categorie