Este é um exemplo de aplicação Spring Boot que demonstra operações CRUD (Create, Read, Update, Delete) em uma entidade de produtos. O objetivo deste projeto é acadêmico, servindo como um exemplo simples de uma aplicação Spring Boot com funcionalidades CRUD.
-
ProductController: Controlador responsável por manipular as requisições HTTP relacionadas aos produtos.
-
ProductRecordDto: DTO (Data Transfer Object) que representa os dados de entrada/saída para a entidade de produto.
-
ProductModel: Entidade que representa um produto e é mapeada para a tabela
TB_PRODUCTS
no banco de dados. -
ProductRepository: Interface que estende JpaRepository para realizar operações de persistência na entidade ProductModel.
-
SpringbootApplication: Classe principal que inicia a aplicação Spring Boot.
-
application.properties: Arquivo de configuração do Spring Boot, que define as configurações do banco de dados PostgreSQL.
-
POST /products: Cria um novo produto com base nos dados fornecidos no corpo da requisição.
-
GET /products: Retorna todos os produtos cadastrados.
-
GET /products/{id}: Retorna os detalhes de um produto específico com base no ID fornecido.
-
PUT /products/{id}: Atualiza os dados de um produto específico com base no ID fornecido.
-
DELETE /products/{id}: Exclui um produto específico com base no ID fornecido.
O projeto está configurado para usar um banco de dados PostgreSQL. Certifique-se de ter um banco de dados chamado products-api
configurado localmente, com o usuário postgres
e senha root
. O Hibernate está configurado para atualizar automaticamente o esquema do banco de dados.
spring.datasource.url = jdbc:postgresql://localhost:5432/products-api
spring.datasource.username= postgres
spring.datasource.password= root
spring.jpa.hibernate.ddl-auto= update
# Configuração adicional para evitar problemas de criação de tabela no contexto não contextual do Hibernate
spring.jpa.properties.hibernate.jdbc.lab.non_contextual_creation = true
Certifique-se de ter o JDK 21 e o Maven instalados em sua máquina. Abra o projeto no IntelliJ IDEA usando o arquivo pom.xml para baixar todas as dependências. Para iniciar a aplicação, execute o seguinte comando na raiz do projeto:
mvn spring-boot:run
A aplicação estará disponível em http://localhost:8080.
Abaixo estão exemplos de como testar os endpoints usando o Postman.
- Endpoint: POST /products
- Corpo da Requisição (JSON):
{
"name": "Produto Teste",
"value": 19.99
}
- Resultado Esperado: Retorno do produto recém-criado.
- Endpoint: GET /products
- Resultado Esperado: Lista de todos os produtos cadastrados.
- Endpoint: GET /products/{id}
- Resultado Esperado: Detalhes do produto com o ID específico.
- Endpoint: PUT /products/{id}
- Corpo da Requisição (JSON):
{
"name": "Produto Atualizado",
"value": 29.99
}
- Resultado Esperado: Retorno do produto atualizado.
- Endpoint: DELETE /products/{id}
- Resultado Esperado: Confirmação de exclusão bem-sucedida.
Este projeto utiliza o Hibernate e o Spring Data JPA para facilitar a interação com o banco de dados. Certifique-se de ajustar as configurações do banco de dados conforme necessário para o seu ambiente.