Uma API RESTful simples para gerenciamento de usuários, construída com Express e TypeScript.
- ✅ Criar usuário
- ✅ Listar todos os usuários
- ✅ Buscar usuário por ID
- ✅ Atualizar usuário
- ✅ Deletar usuário
- ✅ Validação de dados (nome, email)
- ✅ Tratamento de erros centralizado
- Node.js (v14 ou superior)
- npm ou yarn
- Clone o repositório ou navegue até a pasta do projeto:
cd /workspace- Instale as dependências:
npm installnpm startO servidor irá rodar em http://localhost:3000 por padrão.
npm run buildnpm test| Método | Endpoint | Descrição |
|---|---|---|
POST |
/api/users |
Criar um novo usuário |
GET |
/api/users |
Listar todos os usuários |
GET |
/api/users/:id |
Buscar usuário por ID |
PUT |
/api/users/:id |
Atualizar usuário |
DELETE |
/api/users/:id |
Deletar usuário |
GET |
/ |
Health check |
POST http://localhost:3000/api/users
Content-Type: application/json
{
"name": "Maria",
"email": "maria@example.com"
}Resposta (201 Created):
{
"id": 1,
"name": "Maria",
"email": "maria@example.com",
"createdAt": "2024-01-01T12:00:00.000Z"
}GET http://localhost:3000/api/usersResposta (200 OK):
[
{
"id": 1,
"name": "Maria",
"email": "maria@example.com",
"createdAt": "2024-01-01T12:00:00.000Z"
}
]GET http://localhost:3000/api/users/1PUT http://localhost:3000/api/users/1
Content-Type: application/json
{
"name": "Maria Silva",
"email": "maria.silva@example.com"
}DELETE http://localhost:3000/api/users/1Resposta (204 No Content)
- Nome: Obrigatório, não pode ser vazio
- Email: Obrigatório, deve seguir formato válido (ex:
usuario@dominio.com)
/workspace
├── api.ts # Código principal da API (rotas, controllers, repository)
├── package.json # Dependências e scripts
├── tsconfig.json # Configuração do TypeScript
├── server.test.ts # Testes da API
├── teste.http # Exemplos de requisições HTTP
└── README.md # Este arquivo
Os testes são feitos com Jest e Supertest. Execute:
npm testexpress- Framework web
typescript- Superset do JavaScriptts-node- Execução de TypeScriptjest+ts-jest- Framework de testessupertest- Testes de API HTTP@types/*- Definições de tipos
A API retorna os seguintes códigos de status:
| Código | Descrição |
|---|---|
200 |
Requisição bem-sucedida |
201 |
Recurso criado com sucesso |
204 |
Recurso deletado com sucesso |
400 |
Dados inválidos |
404 |
Recurso não encontrado |
500 |
Erro interno do servidor |
Este projeto é de uso privado.
Desenvolvido com TypeScript e Express 🚀