Resposta do servidor 422 Unprocessable Entity
Definição e Aplicação do Código de Status 422
O código de status HTTP 422 (Unprocessable Entity) é um código que indica que o servidor compreendeu o conteúdo da solicitação, mas não pode processá-lo devido a erros semânticos. Esse status é frequentemente utilizado em situações onde a validação dos dados falha, resultando na incapacidade de atender à solicitação do cliente.
O que significa o código de status 422?
O código 422 é uma resposta que comunica ao cliente que, embora os dados enviados sejam compreensíveis, eles contêm erros que impedem o processamento adequado. Ou seja, a estrutura do pedido pode estar correta, mas o conteúdo não atende aos critérios esperados pelo servidor.
Situações em que pode ocorrer o erro
- Formato de dados incorreto: Quando os dados não estão no formato esperado, como enviar um número onde um texto é requerido.
- Faltando campos obrigatórios: Se a solicitação não inclui todos os campos necessários, o servidor não pode processá-la.
- Valores não suportados em campos: Se os dados apresentados contêm valores que não são aceitos, como uma data fora do intervalo permitido.
Exemplos práticos de uso do código de status 422
Exemplo 1: Erro de validação de formulário
Quando um cliente envia dados de um formulário, o servidor pode responder com um código 422 se algum dos campos não for validado corretamente.
Como o cliente envia dados do formulário: O cliente preenche um formulário e o envia.
Resposta do servidor com código 422: O servidor retorna uma mensagem detalhando quais campos falharam na validação.
Exemplo 2: Processamento de dados de API
Em situações onde o servidor não pode processar os dados de entrada, pode responder com um código 422.
Quando o servidor não pode processar os dados: O cliente envia um JSON que não adere aos requisitos do modelo esperado.
Exemplo de resposta: O servidor pode incluir uma lista de erros específicos indicando quais dados estavam incorretos.
Exemplo 3: Trabalhando com arquivos
Se um cliente tenta enviar um arquivo em um formato não aceito, o servidor pode retornar um código 422.
Tentativa de upload de um arquivo com formato inadequado: O cliente tenta enviar um arquivo .exe quando apenas arquivos .jpg são suportados.
Resposta do servidor: O servidor informa que o formato do arquivo não é permitido.
Correção de erros que causam o código 422
Correção em JavaScript
Exemplo de código que gera erro:
const data = { name: "", age: "twenty" }; // Dados inválidos
fetch('/api/users', {
method: 'POST',
body: JSON.stringify(data),
headers: { 'Content-Type': 'application/json' }
});
Como modificar o código: Implementar uma validação antes de enviar os dados ao servidor para garantir que todos os campos estejam corretos.
Correção em Python
Exemplo de solicitação incorreta:
import requests
data = { "name": "", "age": 20 } # Nome em branco
response = requests.post('https://api.exemplo.com/users', json=data)
Uso da validação de dados: Antes de enviar a solicitação, verifique se todos os campos têm valores válidos.
Correção em PHP
Exemplo de chamada de API com dados incorretos:
$data = ['name' => 'John', 'age' => 'not_a_number']; // Idade inválida
$response = $client->post('/api/users', ['json' => $data]);
Como configurar o servidor: Adicione validações robustas para controlar os dados recebidos e garantir que sejam adequados.
Recomendações para prevenir a ocorrência do código 422
- Validação de dados no lado do cliente: Sempre valide os dados antes de enviá-los ao servidor.
- Documentação clara dos requisitos da API: Certifique-se de que os desenvolvedores conheçam as expectativas para os dados.
- Registro de erros: Implementar um sistema de log para capturar e analisar erros que ocorrem com frequência.
A compreensão do código de status 422 é essencial para o desenvolvimento de aplicações robustas. Ao seguir as recomendações e corrigir erros nos exemplos apresentados, os desenvolvedores poderão evitar a ocorrência desse status e melhorar a experiência do usuário.
Tipo de Erro | Descrição | Solução |
---|---|---|
Formato de dados incorreto | Dados não estão no formato esperado | Implementar validação de formato |
Faltando campos obrigatórios | Solicitação sem todos os campos necessários | Verificar presença de campos antes do envio |
Valores não suportados | Dados contêm valores inválidos | Definir e validar valores aceitos |