API REST para gerenciamento de usuários, desenvolvida com foco em boas práticas de backend, segurança e arquitetura moderna.
Este projeto simula um ambiente real de backend, incluindo:
- Arquitetura em camadas
- Autenticação com JWT
- Validação de dados
- Tratamento global de erros
- Documentação interativa
- Containerização com Docker
- Java 17
- Spring Boot
- Spring Data JPA
- Spring Security
- JWT (Json Web Token)
- PostgreSQL
- Docker & Docker Compose
- Swagger (OpenAPI)
controller → camada de entrada (HTTP)
service → regras de negócio
repository → acesso a dados
model → entidades JPA
dto → transferência de dados (entrada/saída)
security → autenticação e geração de token
exception → tratamento global de erros
config → configurações gerais
docker-compose up --build- API:
http://localhost:8081/users
- Swagger:
http://localhost:8081/swagger-ui/index.html
POST /auth/login
{
"username": "admin",
"password": "123"
}Authorization: Bearer SEU_TOKEN
| Método | Endpoint | Descrição |
|---|---|---|
| POST | /auth/login | Autenticação |
| GET | /users | Listar usuários |
| POST | /users | Criar usuário |
Regras implementadas:
- Nome obrigatório
- Email obrigatório e válido
Exemplo de erro:
{
"nome": "Nome é obrigatório",
"email": "Email inválido"
}A API possui tratamento global com respostas padronizadas:
- 400 → erro de validação
- 401 → não autorizado
- 500 → erro interno
A aplicação roda em containers:
- API Spring Boot
- Banco PostgreSQL
✔ Uso de DTO para desacoplamento ✔ ResponseEntity com status HTTP corretos ✔ Validação com Bean Validation ✔ Tratamento global de exceções ✔ Autenticação com JWT ✔ Documentação automática com Swagger ✔ Arquitetura organizada
Demonstrar habilidades em desenvolvimento backend com foco em:
- Boas práticas
- Organização de código
- Segurança
- Integração com banco de dados
Gabriela Rondon