Este é um sistema de gerenciamento de clientes que permite realizar operações básicas de CRUD (Criar, Buscar, Atualizar, Deletar) em um banco de dados de clientes. A aplicação inclui a funcionalidade de busca paginada de clientes, busca por ID, inserção de novos clientes, atualização e exclusão de clientes. A aplicação segue uma arquitetura RESTful e utiliza o banco de dados H2 para armazenamento de dados.
- Busca Paginada de Clientes: Permite buscar clientes com paginação e ordenação.
- Busca de Cliente por ID: Recupera os detalhes de um cliente específico.
- Inserção de Cliente: Adiciona um novo cliente ao sistema.
- Atualização de Cliente: Atualiza as informações de um cliente existente.
- Deleção de Cliente: Remove um cliente do sistema.
- Validação de Dados: Verifica que o nome não pode ser vazio e que a data de nascimento não pode ser futura.
- Tratamento de Exceções: Gera respostas apropriadas para erros, como 404 para ID não encontrado e 422 para erros de validação.
- Java 17
- Spring Boot 3
- H2 Database (para desenvolvimento e testes)
- JPA / Hibernate (para persistência de dados)
- Maven (para gerenciamento de dependências)
- JDK 17+
- Maven 3.8+
Clone o repositório:
git clone https://github.com/JaineSantos0/sgclients.git
Compile e rode a aplicação:
mvn clean install
mvn spring-boot:run
- URL: http://localhost:8080/h2-console
- JDBC URL: jdbc:h2:mem:devdb
- Username: sa
- Password: (deixe vazio)
- POST /clients - Cria um novo cliente.
- GET /clients - Retorna todos os clientes com paginação.
- GET /clients/{id} - Retorna um cliente específico pelo ID.
- PUT /clients/{id} - Atualiza um cliente existente.
- DELETE /clients/{id} - Remove um cliente.
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── sgtarefas/
│ │ │ ├── controllers/
│ │ │ │ └── handlers/
│ │ │ ├── dto/
│ │ │ ├── entities/
│ │ │ ├── repositories/
│ │ │ ├── services/
│ │ │ │ └── exceptions/
│ │ │ └── SgtarefasApplication.java
│ │ ├── resources/
│ │ │ ├── application.properties
│ │ │ └── application-dev.properties
Nome do Autor: Jaine Santos
Email: jainejosiane@gmail.com