Skip to content

robertdiasmelo/bestsbooks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 BestsBooks API

REST API desenvolvida com Spring Boot para gerenciamento de livros. Este projeto faz parte de uma série de 10 CRUDs progressivos com o objetivo de solidificar conhecimentos no desenvolvimento backend com o ecossistema Spring.


🛠️ Tecnologias

  • Java 25
  • Spring Boot 4.0.6
  • Spring Data JPA
  • Spring Web MVC
  • H2 Database (banco em memória)
  • Maven

📁 Estrutura do Projeto

src/main/java/com/github/robertdiasmelo/bestsbooks/
├── BestsBooksApplication.java
├── controller/
│   └── BestsBooksController.java
├── service/
│   └── BestsBooksService.java
├── repository/
│   └── BestsBooksRepository.java
└── model/
    └── BestsBooks.java

🚀 Como executar

Pré-requisitos

  • Java 25
  • Maven 3.9+

Rodando a aplicação

# Clone o repositório
git clone https://github.com/robertdiasmelo/bestsbooks.git

# Acesse a pasta do projeto
cd bestsbooks

# Execute com Maven
./mvnw spring-boot:run

A aplicação estará disponível em http://localhost:8080.


📖 Endpoints

Base URL: /books

Método Rota Descrição
GET /books Lista todos os livros
GET /books/{id} Busca um livro pelo ID
POST /books Cadastra um novo livro
PUT /books/{id} Atualiza um livro existente
DELETE /books/{id} Remove um livro

📋 Exemplos de uso

Criar um livro

POST http://localhost:8080/books
Content-Type: application/json

{
  "title": "Clean Code",
  "author": "Robert Martin",
  "isbn": "9780132350884",
  "publicationYear": 2008
}

Resposta: 201 Created

{
  "id": 1,
  "title": "Clean Code",
  "author": "Robert Martin",
  "isbn": "9780132350884",
  "publicationYear": 2008
}

Listar todos os livros

GET http://localhost:8080/books

Resposta: 200 OK

[
  {
    "id": 1,
    "title": "Clean Code",
    "author": "Robert Martin",
    "isbn": "9780132350884",
    "publicationYear": 2008
  }
]

Buscar por ID

GET http://localhost:8080/books/1

Resposta: 200 OK

{
  "id": 1,
  "title": "Clean Code",
  "author": "Robert Martin",
  "isbn": "9780132350884",
  "publicationYear": 2008
}

Atualizar um livro

PUT http://localhost:8080/books/1
Content-Type: application/json

{
  "title": "Clean Code - Updated",
  "author": "Robert Martin",
  "isbn": "9780132350884",
  "publicationYear": 2008
}

Resposta: 200 OK

Deletar um livro

DELETE http://localhost:8080/books/1

Resposta: 204 No Content


🧱 Arquitetura

A aplicação segue o padrão de camadas do Spring:

HTTP Request
     │
     ▼
 Controller        ← recebe e responde requisições HTTP
     │
     ▼
  Service          ← contém as regras de negócio
     │
     ▼
 Repository        ← acesso ao banco de dados via Spring Data JPA
     │
     ▼
  Database         ← H2 em memória

📌 Sobre a série 10 CRUDs com Spring Boot

Este projeto é o primeiro de uma série progressiva onde cada CRUD introduz novos conceitos:

# Projeto Conceito introduzido
1 BestsBooks Estrutura base: Entity, Repository, Service, Controller
2 Produtos + Categoria Relacionamento OneToMany, DTOs
3 Alunos Bean Validation, GlobalExceptionHandler
4 Funcionários Enums, JPQL, queries customizadas
5 Clientes + Endereço @Embeddable, composição de entidades
6 Pedidos ManyToMany, entidade de junção
7 Usuários BCrypt, Spring Security
8 Tarefas Paginação, ordenação, filtros
9 Produtos com imagem Upload de arquivos
10 Agendamentos @Scheduled, eventos de domínio

👤 Autor

Robert Dias Melo github.com/robertdiasmelo

About

REST API desenvolvida com Spring Boot para gerenciamento de livros. Este projeto faz parte de uma série de 10 CRUDs progressivos com o objetivo de solidificar conhecimentos no desenvolvimento backend com o ecossistema Spring.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages