Uma API REST minimalista e bem organizada para gerenciamento de biblioteca, desenvolvida com Spring Boot e MongoDB. Este projeto é ideal para consolidar a arquitetura em camadas (Model, Repository, Service, Controller) e a aplicação de regras de negócio.
- ✅ Cadastro de Livros: Permite cadastrar, listar e buscar livros por ID.
- ✅ Controle de Empréstimos: Registro de quem pegou o livro e a data de devolução prevista.
- ✅ Regra de Negócio Implementada: Não permite o empréstimo de um livro que já esteja emprestado (indisponível).
Para aprimorar o projeto para o seu GitHub, considere adicionar estas funcionalidades:
- Implementar métodos de atualização (
PUT) e exclusão (DELETE) para Livros. - Adicionar validação de dados de entrada usando o Jakarta Bean Validation.
- Criar endpoints para listar apenas empréstimos ativos e empréstimos atrasados.
- Java 17+
- Spring Boot 3.x
- Spring Web (para criar a API REST)
- Spring Data MongoDB (para persistência)
- MongoDB
- Maven
- Java 17 ou superior instalado.
- MongoDB rodando (verifique se está acessível pela porta e URL configurada).
- Maven instalado.
-
Clone o seu repositório Git:
git clone <seu-repositorio> cd nome-do-seu-projeto
-
Configure a conexão com o MongoDB no arquivo
src/main/resources/application.properties:spring.data.mongodb.uri=mongodb://localhost:27017/minha_bibliotecaSe estiver usando o MongoDB Atlas, substitua pela sua URI de conexão.
-
Execute a aplicação via Maven:
mvn spring-boot:run
A API estará disponível em: http://localhost:8080
O caminho base (Base Path) para todos os endpoints é: /api/v1/biblioteca
| Método | Endpoint | Descrição |
|---|---|---|
POST |
/livros |
Cadastra um novo livro (Body: JSON do Livro). |
GET |
/livros |
Lista todos os livros cadastrados. |
GET |
/livros/{id} |
Busca um livro específico pelo seu ID. |
| Método | Endpoint | Descrição |
|---|---|---|
POST |
/emprestimos |
Realiza um novo empréstimo. |
PUT |
/emprestimos/devolver/{livroId} |
Registra a devolução de um livro. |
GET |
/emprestimos |
Lista o histórico completo de empréstimos. |
POST http://localhost:8080/api/v1/biblioteca/livros
{
"titulo": "Clean Code",
"autor": "Robert C. Martin",
"isbn": "978-0132350884"
}