status http
JavaScript

Códigos de Status HTTP na Prática: Aprenda 200, 201, 400, 401, 403, 404, 422 e 500 Criando uma API com Node.js

Quando estamos desenvolvendo uma API REST, os códigos de status HTTP são fundamentais para indicar ao cliente se uma requisição foi executada com sucesso ou se ocorreu algum tipo de erro.

Apesar de parecerem simples, muitos desenvolvedores iniciantes utilizam os códigos incorretamente, retornando sempre 200 OK ou utilizando 400 Bad Request para qualquer situação.

Neste artigo vamos construir uma API utilizando Node.js e Express, entender quando utilizar cada código de status HTTP e aprender boas práticas utilizadas em aplicações reais.


Assista à aula completa

Se preferir acompanhar todo o desenvolvimento passo a passo, assista à aula completa no YouTube.

🎥 Live completa:


O que são Status HTTP?

Sempre que um navegador, aplicativo ou sistema faz uma requisição para um servidor, este responde utilizando um código HTTP.

Esse código informa ao cliente o resultado da operação.

Por exemplo:

  • A requisição foi executada com sucesso?
  • O usuário não possui autorização?
  • O recurso não existe?
  • Houve erro interno no servidor?

Cada situação possui um código específico.


Principais categorias de Status HTTP

Os códigos são divididos em cinco grupos principais.

1xx — Informativos

Utilizados para informar que a requisição foi recebida.

São pouco utilizados no desenvolvimento cotidiano.


2xx — Sucesso

Indicam que tudo ocorreu corretamente.

Os mais comuns são:

  • 200 OK
  • 201 Created

3xx — Redirecionamento

Utilizados quando um recurso foi movido ou redirecionado.

Exemplo:

  • 301
  • 302

4xx — Erro do Cliente

O problema ocorreu na requisição enviada pelo cliente.

Exemplos:

  • 400
  • 401
  • 403
  • 404
  • 422

5xx — Erro do Servidor

O servidor encontrou um erro durante o processamento.

Exemplo:

  • 500 Internal Server Error

Status 200 OK

O código 200 OK deve ser utilizado quando a operação foi executada com sucesso.

Exemplo:

  • Buscar usuários
  • Listar produtos
  • Consultar um cadastro
res.status(200).json(usuario);

Status 201 Created

Quando um novo recurso é criado, o código correto é 201 Created.

Exemplo:

Cadastro de um novo usuário.

res.status(201).json(novoUsuario);

Muitos desenvolvedores retornam 200, mas o correto é utilizar 201, informando que um novo recurso foi criado.


Status 400 Bad Request

O código 400 indica que a requisição enviada possui informações inválidas.

Exemplos:

  • JSON inválido
  • Campo obrigatório ausente
  • Formato incorreto
return res.status(400).json({
    mensagem: "Dados inválidos."
});

Status 401 Unauthorized

Utilizado quando o usuário ainda não foi autenticado.

Exemplo:

Token JWT inexistente ou inválido.

return res.status(401).json({
    mensagem: "Token inválido."
});

Status 403 Forbidden

Neste caso o usuário está autenticado, porém não possui permissão para acessar determinado recurso.

Exemplo:

Usuário comum tentando acessar uma área administrativa.


Status 404 Not Found

O recurso solicitado não existe.

Exemplo:

Buscar um produto utilizando um ID inexistente.

return res.status(404).json({
    mensagem: "Produto não encontrado."
});

Status 422 Unprocessable Entity

Um dos códigos mais esquecidos pelos iniciantes.

O 422 é utilizado quando os dados possuem formato correto, porém não passam nas regras de negócio.

Exemplo:

  • Email inválido
  • CPF inválido
  • Senha muito pequena
return res.status(422).json({
    mensagem: "Email inválido."
});

Status 500 Internal Server Error

Este código representa um erro interno do servidor.

Uma boa prática importante é:

Nunca retornar o erro real para o usuário.

Errado:

{
    "erro": "Cannot read property..."
}

Correto:

{
    "mensagem": "Erro interno do servidor."
}

O erro verdadeiro deve ser registrado apenas nos logs da aplicação utilizando:

console.error(error);

ou ferramentas como:

  • Winston
  • Pino
  • Morgan

Testando a API com Thunder Client

Durante a aula utilizamos o Thunder Client para testar todas as rotas da API.

Foram simuladas situações reais para demonstrar:

  • sucesso (200)
  • criação (201)
  • dados inválidos (400)
  • autenticação (401)
  • autorização (403)
  • recurso inexistente (404)
  • validação (422)
  • erro interno (500)

Esse tipo de teste facilita muito o desenvolvimento de APIs REST.


Boas práticas

Durante o desenvolvimento procure sempre:

  • utilizar o código HTTP correto;
  • nunca retornar erros internos para o cliente;
  • validar dados tanto no frontend quanto no backend;
  • utilizar logs para registrar erros;
  • testar todas as rotas antes da publicação.

Essas práticas tornam a API mais segura, organizada e fácil de manter.


Conclusão

Entender os códigos de status HTTP é um dos conhecimentos mais importantes para qualquer desenvolvedor backend.

Mais do que decorar números, é fundamental compreender quando utilizar cada código para criar APIs REST padronizadas e profissionais.

Se você está aprendendo Node.js, Express ou desenvolvimento de APIs, dominar esses códigos fará diferença na qualidade dos seus projetos.

Leave a Reply

Your email address will not be published. Required fields are marked *