API desenvolvida com Spring Boot, JPA e Hibernate. Projetada para gerenciar pedidos, usuários, produtos e pagamentos, o que a torna aplicável a diversos cenários. O projeto aplica boas práticas de arquitetura, implementa CRUD completo, gerencia relacionamentos complexos e trata exceções personalizadas.
A base de dados iniciei em H2 para testes e migrou para PostgreSQL em produção.
- Instalação com Docker
- Como Usar
- Documentação da API (Swagger)
- Endpoints da API
- Tecnologias Utilizadas
- Clone o repositório
git clone https://github.com/seu-usuario/sistema-gestao-pedidos.git
cd order-system- Execute o Docker Compose:
docker-compose up -dO banco de dados será iniciado automaticamente usando um volume Docker chamado pgdata, garantindo persistência dos dados mesmo após parar os containers.
Depois de iniciar a aplicação, a API REST estará disponível em:
http://localhost:8080A API conta com uma UI para explorar os endpoints e realizar testes, implementada com SpringDoc OpenAPI.
- JSON da API: http://localhost:8080/v3/api-docs
- Interface Swagger UI: http://localhost:8080/swagger-ui.html
A documentação inclui todos os detalhes dos endpoints, exemplos de requisições e respostas, facilitando a integração com a API.
📌 POST /users - Criar um novo usuário
Este endpoint permite a criação de um novo usuário no sistema.
📌 GET /users - Listar todos os usuários
Este endpoint retorna todos os usuários cadastrados no sistema.
📌 GET /users/{id} - Buscar usuário por ID
Este endpoint retorna os detalhes de um usuário específico com base no seu ID.
📌 PUT /users/{id} - Atualizar um usuário
Este endpoint permite a atualização dos dados de um usuário específico.
📌 DELETE /users/{id} - Deletar um usuário
Este endpoint remove um usuário específico com base no seu ID.
📌 GET /orders - Listar todos os pedidos
Este endpoint retorna todos os pedidos cadastrados no sistema.
📌 GET /products - Listar todos os produtos
Este endpoint retorna todos os produtos cadastrados no sistema.
📌 GET /categories - Listar categorias
Este endpoint retorna todas as categorias disponíveis no sistema.
- Java 17
- Spring Boot
- Spring Data JPA
- Spring Security
- H2 Database
- Hibernate
- Maven
- Swagger
- PostgreSQL
- Docker
- Adicionar autenticação e autorização com JWT.
- Implementar testes unitários para garantir maior cobertura.