Está API RestFull trata-se de um serviço de Livraria com cadastro e aluguél de livros. Com ela podemos cadastrar, consultar, atualizar e deletar livros com o path /api/books/, e podemos simular aluguéis com a possibilidade de criar, consultar e atualizar com a devolução com o path /api/loans/. Possui também tratativas de possíveis erros com a má utilização da api.
- Linguagem: Java 8
- Framework: Spring Boot
- Módulo Validação: Spring Validation
- Módulo Métricas: Spring Actuator
- Persistência Dados: Spring JPA
- Bacno em Memória: H2
- TDD & BDD: Junit 5 & Mockito
- Logs: Sl4j
- Cobertura de Teste: Jacoco
- CronJob: Spring Scheduling
- MailService: Spring Mail
- Lib verificações: AssertJ
- Lib AllArgsConstructors: Lombook
- Lib Map de Objetos: ModelMapper
- Métricas: Spring Boot Admin
- Versionador Código: Git & GitHub
- Documentação API: Swagger
- CI: Travis
- CD: Heroku
- Cobertura de Testes: Codecov
- Endpoints Mapeados: Postman
- POST (/api/books/)
(201 Created)
(400 BadRequest) // Quando tenta cadastrar 2 vezes o mesmo isbn. "errors": "Isbn já cadastrado."
(401 Unauthorized)
(403 Forbidden)
(404 Not Found) // Ex: URL/api/books0 ou URL/api/books/0
(405 Method Not Allwed) // Ex: URL/api/books/a
- GET (/api/books/) ou (/{id}) ou (/{id}/loans)
(200 ok)
(401 Unauthorized)
(403 Forbidden)
(404 Not Found) // Ex: URL/api/books0 ou URL/api/books/0
(405 Method Not Allwed) // Ex: URL/api/books/a
- PUT (/api/books/{id})
(201 ok)
(401 Unauthorized)
(403 Forbidden)
(404 Not Found) // Ex: URL/api/books0 ou URL/api/books/0
(405 Method Not Allwed) // Ex: URL/api/books/a
- DELETE (/api/books/{id})
(204 No Content)
(401 Unauthorized)
(403 Forbidden)
(404 Not Found) // Ex: URL/api/books0 ou URL/api/books/0
(405 Method Not Allwed) // Ex: URL/api/books/a
- POST (/api/loans) // Realizar empréstimo
(201 Created)
(400 BadRequest) "Book not found for passed isbn"
(401 Unauthorized)
(403 Forbidden)
(404 Not Found) // Ex: URL/api/books0 ou URL/api/books/0
(405 Method Not Allwed) // Ex: URL/api/books/a
- PATCH (/api/loans/id)
(200 ok)
(401 Unauthorized)
(403 Forbidden)
(404 Not Found) // Ex: URL/api/books0 ou URL/api/books/0
(405 Method Not Allwed) // Ex: URL/api/books/a
- GET (/api/loans?isbn=""&customer="Denis Donda")
(200 ok)
(401 Unauthorized)
(403 Forbidden)
(404 Not Found) // Ex: URL/api/books0 ou URL/api/books/0
(405 Method Not Allwed) // Ex: URL/api/books/a