Desenvolver uma API funcional que permita realizar operações CRUD (Create, Read, Update, Delete) em produtos. A API deve implementar os seguintes endpoints:
POST /produtos
- Criar um novo produto.GET /produtos
- Listar todos os produtos.GET /produtos/{id}
- Obter detalhes de um produto específico pelo seu ID.PUT /produtos/{id}
- Atualizar informações de um produto específico pelo seu ID.DELETE /produtos/{id}
- Deletar um produto específico pelo seu ID.Um produto deve possuir os seguintes atributos:
Long id
String descricao
Float preco
Boolean disponivel
Double peso
Character categoria
Além disso, o modelo deve incluir um construtor vazio, getters e setters para todos os atributos.
Instale e configure o MySQL Community Edition.
Crie o projeto usando o Spring Initializr (https://start.spring.io/), adicionando as seguintes dependências:
application.properties
No arquivo application.properties
, insira as seguintes configurações básicas:
spring.datasource.url=jdbc:mysql://localhost:3306/api_produtos?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=12345678
spring.jpa.hibernate.ddl-auto=update
spring.jpa.open-in-view=false
[!NOTE]
spring.datasource.url
: URL de conexão JDBC para o banco de dados MySQL. O parâmetro createDatabaseIfNotExist=true garante que o banco de dados seja criado se não existir.spring.datasource.username
: Nome de usuário para conectar ao banco de dados.spring.datasource.password
: Senha para conectar ao banco de dados.spring.jpa.hibernate.ddl-auto
: Configuração do Hibernate para controlar o comportamento de atualização do esquema do banco de dados. O valor update permite que o Hibernate atualize o esquema do banco de dados conforme as mudanças nas entidades.spring.jpa.open-in-view=false
: Desativa a estratégia de Open Session in View. Isso pode melhorar o desempenho e evitar possíveis problemas de gerenciamento de transações além de remover o warning quando a aplicação é executada.
src/main/java/com/seu_projeto/api
|-- resource
| |-- ProdutoResource.java
|-- model
| |-- entity
| | |-- Produto.java
| |-- repository
| |-- ProdutoRepository.java
|-- Application.java