Este é um projeto de API CRUD desenvolvido com Spring Boot para o gerenciamento de uma loja de celulares. A API permite a criação, leitura, atualização e exclusão de produtos (celulares) de forma simples e eficiente.
- Criar: Adicione novos celulares à loja.
- Ler: Consulte os detalhes dos celulares cadastrados.
- Atualizar: Modifique as informações de celulares existentes.
- Excluir: Remova celulares do catálogo.
- Spring Boot: Framework principal para construção da API.
- JPA (Java Persistence API): Para interação com banco de dados.
- PostgreSQL: Banco de dados relacional utilizado para armazenar os dados.
- Flyway: Para controle de migrações do banco de dados.
- Lombok: Para reduzir o código boilerplate, como getters, setters e construtores.
Antes de rodar a API, garanta que você tenha:
- Java 17 ou superior instalado.
- Maven para gerenciamento de dependências e execução do projeto.
- PostgreSQL rodando em sua máquina ou em um ambiente de desenvolvimento.
git clone https://github.com/seu-usuario/phone-api.git
cd phone-apiNo arquivo src/main/resources/application.properties, configure as credenciais do banco de dados:
spring.datasource.url=jdbc:postgresql://localhost:5432/phone_store
spring.datasource.username=seu-usuario
spring.datasource.password=sua-senha
spring.jpa.hibernate.ddl-auto=updateExecute o seguinte comando para compilar e iniciar o projeto:
./mvnw spring-boot:runOu, se preferir usar Maven diretamente:
mvn spring-boot:runA aplicação estará rodando em http://localhost:8080.
A API fornece os seguintes endpoints para realizar operações CRUD:
- GET /phones: Retorna todos os celulares cadastrados.
- GET /phones/{id}: Retorna os detalhes de um celular específico.
- POST /phones: Adiciona um novo celular à loja.
- PUT /phones/{id}: Atualiza os detalhes de um celular existente.
- DELETE /phones/{id}: Remove um celular do catálogo.
POST /phones
{
"name": "iPhone 13",
"brand": "Apple",
"price": 7999.99,
"storage": "128GB"
}GET /phonesPUT /phones/1
{
"name": "iPhone 13 Pro",
"brand": "Apple",
"price": 9999.99,
"storage": "256GB"
}DELETE /phones/1Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.