Skip to content

Mgrsantos/api-spring-postgres

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 User API — Spring Boot + Docker + JWT

API REST para gerenciamento de usuários, desenvolvida com foco em boas práticas de backend, segurança e arquitetura moderna.


📌 Sobre o projeto

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

🛠️ Tecnologias

  • Java 17
  • Spring Boot
  • Spring Data JPA
  • Spring Security
  • JWT (Json Web Token)
  • PostgreSQL
  • Docker & Docker Compose
  • Swagger (OpenAPI)

🧱 Arquitetura

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

⚙️ Execução

🔹 Subir aplicação

docker-compose up --build

🔹 Acessos

  • API:
http://localhost:8081/users
  • Swagger:
http://localhost:8081/swagger-ui/index.html

🔐 Autenticação

Login

POST /auth/login

{
  "username": "admin",
  "password": "123"
}

Uso do token

Authorization: Bearer SEU_TOKEN

📌 Endpoints principais

Método Endpoint Descrição
POST /auth/login Autenticação
GET /users Listar usuários
POST /users Criar usuário

🧪 Validação

Regras implementadas:

  • Nome obrigatório
  • Email obrigatório e válido

Exemplo de erro:

{
  "nome": "Nome é obrigatório",
  "email": "Email inválido"
}

⚠️ Tratamento de erros

A API possui tratamento global com respostas padronizadas:

  • 400 → erro de validação
  • 401 → não autorizado
  • 500 → erro interno

🐳 Ambiente com Docker

A aplicação roda em containers:

  • API Spring Boot
  • Banco PostgreSQL

📊 Diferenciais técnicos

✔ 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


🎯 Objetivo

Demonstrar habilidades em desenvolvimento backend com foco em:

  • Boas práticas
  • Organização de código
  • Segurança
  • Integração com banco de dados

👩‍💻 Autora

Gabriela Rondon

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages