Este projeto é uma API REST para gerenciamento de produtos, desenvolvida com Spring Boot 3, PostgreSQL e Java 21.
Ele segue boas práticas de arquitetura em camadas, com Controller, Service, Repository e DTOs, e validação de dados usando Spring Validation.
- 
CRUD completo de produtos: - Criar produto (POST /api/products)
- Listar produtos (GET /api/products)
- Buscar produto por ID (GET /api/products/{id})
- Atualizar produto (PUT /api/products/{id})
- Deletar produto (DELETE /api/products/{id})
 
- Criar produto (
- 
Suporte a inserção em lote: - Criar múltiplos produtos de uma vez (POST /api/products/batch)
 
- Criar múltiplos produtos de uma vez (
- 
Validações: - Nome obrigatório (@NotBlank)
- Preço positivo (@Min(0))
 
- Nome obrigatório (
- Java 21
- Spring Boot 3.x
- Spring Data JPA
- PostgreSQL
- Lombok
- Spring Validation
src/main/java
 └─ com.example.Spring_Boot_REST_API
     ├─ controller   # Recebe requisições HTTP
     ├─ service      # Regras de negócio
     ├─ repository   # Interface de acesso ao banco
     ├─ model        # Entidades JPA
     └─ dto          # Data Transfer Objects
- Clone o repositório:
git clone https://github.com/pdalbem/Spring-Boot-REST-API
cd Spring-Boot-REST-API- Configure o PostgreSQL no application.properties:
spring.datasource.url=jdbc:postgresql://localhost:5432/nome_do_banco
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true- Execute a aplicação:
mvn spring-boot:run- Teste os endpoints usando Postman ou curl.
{
  "name": "Laptop",
  "price": 3500.0
}[
  {
    "id": 1,
    "name": "Laptop",
    "price": 3500.0
  },
  {
    "id": 2,
    "name": "Smartphone",
    "price": 350.0
  }
]{
  "id": 1,
  "name": "Laptop",
  "price": 3500.0
}{
  "name": "Laptop Gamer",
  "price": 3800.0
}- Não há body. Apenas faça uma requisição DELETE para o endpoint, ex.:
DELETE /api/products/1
- Retorna status 204 No Content em caso de sucesso.
- O projeto é modular e escalável, pronto para adicionar novos atributos, relacionamentos ou endpoints extras.
- Segue os princípios do Spring Boot + REST + JPA + DTO + Service Layer.
- Repositório no GitHub: https://github.com/pdalbem/Spring-Boot-REST-API