Conteúdo

    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.

    422 - Unprocessable Entity

    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