Este projeto consiste em uma API RESTful para o gerenciamento de produtos, desenvolvida como um projeto pessoal com o objetivo de consolidar conhecimentos em desenvolvimento backend, integração com bancos de dados relacionais e arquitetura de software utilizando o ecossistema Spring.
A aplicação foi projetada para realizar as operações fundamentais de manipulação de dados (CRUD). O sistema permite o controle de um inventário de produtos, gerenciando desde a persistência de informações técnicas até a exposição desses dados através de endpoints padronizados.
O desenvolvimento focou na compreensão do ciclo de vida de uma requisição HTTP, no mapeamento objeto-relacional (ORM) e na configuração de conectividade de rede com servidores de banco de dados em ambiente local.
- Persistência de Dados: Cadastro de produtos com atributos como nome, código, preço, descrição, quantidade, avaliação e categoria.
- Consulta Avançada: Listagem geral de produtos e busca segmentada por categoria ou identificador único (ID).
- Gerenciamento de Registros: Atualização dinâmica de informações e exclusão de itens diretamente no banco de dados.
- Documentação Interativa: Interface visual para testes de endpoints e visualização da estrutura da API em tempo real.
- Java 25: Utilização de recursos modernos da linguagem e da JVM.
- Spring Boot 4.0.3: Framework central para agilidade no desenvolvimento e inversão de controle.
- Spring Data JPA: Abstração da camada de dados para redução de código boilerplate.
- Hibernate: Engine de ORM para mapeamento de entidades e geração automática de esquema SQL.
- Jakarta Persistence (JPA): Padronização da persistência de dados em Java.
- Microsoft SQL Server: SGBD relacional utilizado para o armazenamento seguro e estruturado das informações.
- SpringDoc OpenAPI (Swagger): Gerador de documentação técnica e interface de testes.
- Gradle: Gestor de dependências e automação de builds.
- Azure Data Studio / SQL Server Configuration Manager: Ferramentas para administração, monitoramento de rede (TCP/IP) e análise de queries.
A solução foi estruturada em camadas para garantir a separação de responsabilidades:
- Entity: Representação fiel das tabelas do banco de dados no modelo orientado a objetos.
- Repository: Interface que estende o JpaRepository para operações de persistência e consultas customizadas.
- Controller: Camada de entrada que gerencia as rotas, interpreta as requisições e retorna as respostas adequadas ao cliente.
Este projeto representa um marco importante no estudo de tecnologias Java, servindo como base para futuras implementações de segurança, validação de dados e arquitetura de microsserviços.
Como parte do processo de evolução contínua deste projeto, está prevista a transição de um modelo de dados simplificado para um ecossistema relacional mais complexo.
Esta etapa contemplará a implementação de novas entidades e a normalização da base de dados, estabelecendo associações estratégicas (como relacionamentos de um-para-muitos e muitos-para-um). O objetivo é simular cenários de negócios reais, onde a segmentação da informação em entidades distintas garante a integridade referencial, reduz a redundância de dados e permite uma escalabilidade organizada da aplicação.