Bem-vindo à documentação da API de Busca de CEP. Esta API permite que você gerencie informações de usuários e busque CEPs.
Base URL: https:/localhost:3000
- Rota:
POST /usuarios
- Descrição: Crie um novo usuário com as informações fornecidas.
- Parâmetros de entrada:
nome
(string, obrigatório) - O nome do usuário.email
(string, obrigatório) - O endereço de e-mail do usuário.senha
(string, obrigatório) - A senha do usuário.
- Exemplo de solicitação:
{
"nome": "João Silva",
"email": "joao@example.com",
"senha": "senha123"
}
- Resposta bem-sucedida:
- Código: 201 Created
- Exemplo de resposta:
{
"id": 1,
"nome": "João Silva",
"email": "joao@example.com"
}
- Rota:
GET /usuarios/{id}
- Descrição: Obtenha informações detalhadas sobre um usuário pelo ID.
- Parâmetros de entrada:
id
(integer, obrigatório) - O ID único do usuário.
- Exemplo de solicitação:
GET /usuarios/1
- Resposta bem-sucedida:
- Código: 200 OK
- Exemplo de resposta:
{
"id": 1,
"nome": "João Silva",
"email": "joao@example.com"
}
- Rota:
GET /usuarios/
- Descrição: Obtenha informações detalhadas de todos os usuários.
- Exemplo de solicitação:
GET /usuarios/
- Resposta bem-sucedida:
- Código: 200 OK
- Exemplo de resposta:
[
{
"id": 1,
"nome": "João Silva",
"email": "joao@example.com"
},
{
"id": 2,
"nome": "Maria Nunes",
"email": "maria@example.com"
}
]
- Rota:
PUT /usuarios/{id}
- Descrição: Atualize as informações de um usuário existente.
- Parâmetros de entrada:
id
(integer, obrigatório) - O ID único do usuário.nome
(string, opcional) - O novo nome do usuário.email
(string, opcional) - O novo endereço de e-mail do usuário.
- Exemplo de solicitação:
{
"nome": "João da Silva"
}
- Resposta bem-sucedida:
- Código: 204 No Content
- Rota:
DELETE /usuarios/{id}
- Descrição: Exclua um usuário pelo ID.
- Parâmetros de entrada:
id
(integer, obrigatório) - O ID único do usuário.
- Exemplo de solicitação:
DELETE /usuarios/1
- Resposta bem-sucedida:
- Código: 204 No Content
- Rota:
GET /cep/{cep}
- Descrição: Busque informações detalhadas de um CEP.
- Parâmetros de entrada:
cep
(string, obrigatório) - O CEP desejado.
- Exemplo de solicitação:
GET /cep/12345-678
- Resposta bem-sucedida:
- Código: 200 OK
- Exemplo de resposta:
{
"cep": "12345678",
"state": "SP",
"city": "São José do Rio Preto",
"neighborhood": "Bairro Teste",
"street": "Rua Teste",
"service": "correios"
}
- Rota:
GET /health
- Descrição: Esta rota é usada para verificar o status de saúde do servidor. Ela retorna uma resposta simples indicando que o servidor está em funcionamento.
- Resposta bem-sucedida:
- Código: 200 OK
- Exemplo de resposta:
{
"uptime": "1420.0",
"message": "OK",
"timestamp": "2023-01-01T00:00:00.000",
}
A API pode retornar os seguintes códigos de erro:
- 400 Bad Request: Solicitação inválida.
- 404 Not Found: Recurso não encontrado.
- 409 Conflict: Recurso já cadastrado.
- 500 Internal Server Error: Erro interno do servidor.
- Configuração do ambiente;
- Testes;
Instalando dependências
sudo apt install -y docker docker-compose
Copie o arquivos "*.dist" e realize o preenchimento deles.
make copy-dist
Para gerar o aquivo do Swagger:
make swagger
make test
make coverage
- Familiariadade com a linguagem NodeJs;
- Simplicidade para codificação;
- Comunidade muito ativa;
Realizei uma pesquisa breve e pude encontrar um ponto interessante:
Outra vantagem é o desempenho. Node.js utiliza a arquitetura de loop de eventos não bloqueantes, o que o torna altamente eficiente para manipular muitas conexões simultâneas, tornando-o uma excelente escolha para aplicativos de alto tráfego e tempo real, como chats, jogos online e streaming de dados. Java, por outro lado, exige mais recursos para lidar com tarefas concorrentes, tornando-o menos eficiente em algumas situações.
Quando um navegador digita uma URL de um site determinando site o browser realiza uma serie de etapas para atender esta solicitação segue um passo a passo explicando isto melhor:
- O Browser realiza a validação se este DNS ou ip que foi digitado existe;
- Caso positivo, realiza uma coneção com o servidor responsável pelo DNS e realiza uma requisição HTTP;
- O servidor realiza o processamento desta requisição, nesta etapa pode houver:
- chamadas em outros serviços, servidores e aplicações;
- carregamento de arquivos estáticos;
- processar scripts.
- Envido do retorno do processamento para o cliente;
- Broweser recebe as informações e rendereiza para o usuário final;
Lembrando que em todas estas etapas pode ocorrer erros, como latência, falta de energia, interrupções de conexão, percas de pacotes, erros no servidor...