Skip to content

pdalbem/Spring-Boot-REST-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Boot REST API - CRUD de Produtos

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.


Funcionalidades

  • 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})
  • Suporte a inserção em lote:

    • Criar múltiplos produtos de uma vez (POST /api/products/batch)
  • Validações:

    • Nome obrigatório (@NotBlank)
    • Preço positivo (@Min(0))

Tecnologias

  • Java 21
  • Spring Boot 3.x
  • Spring Data JPA
  • PostgreSQL
  • Lombok
  • Spring Validation

Estrutura do projeto

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

Como rodar o projeto

  1. Clone o repositório:
git clone https://github.com/pdalbem/Spring-Boot-REST-API
cd Spring-Boot-REST-API
  1. 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
  1. Execute a aplicação:
mvn spring-boot:run
  1. Teste os endpoints usando Postman ou curl.

Exemplos de JSON e requisições

Criar um produto (POST /api/products)

{
  "name": "Laptop",
  "price": 3500.0
}

Listar todos os produtos (GET /api/products)

[
  {
    "id": 1,
    "name": "Laptop",
    "price": 3500.0
  },
  {
    "id": 2,
    "name": "Smartphone",
    "price": 350.0
  }
]

Buscar produto por ID (GET /api/products/{id})

{
  "id": 1,
  "name": "Laptop",
  "price": 3500.0
}

Atualizar produto (PUT /api/products/{id})

{
  "name": "Laptop Gamer",
  "price": 3800.0
}

Deletar produto (DELETE /api/products/{id})

  • 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.

Observações

  • 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

About

Spring Boot REST API for managing products with PostgreSQL and JPA

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages