How peterson-araujo/livraria works
Livraria API is a Spring REST backend for managing authors, publishers and books. A client sends JSON requests to resource controllers; controllers map request data, invoke services, and map results into responses. Services enforce catalog rules and use Spring Data repositories to read and write JPA entities in the configured H2 database. The README also describes customers and orders, but no corresponding source modules appear in the supplied tree, so those capabilities are not represented as implemented components. Wiring reflects sampled controllers and services; unsampled areas are not inferred.
Main entry points: LivroService.java Book Service · LivroEntity.java Book Entity · AutorController.java Author Controller · EditoraController.java Publisher Controller
Components 18
REST API
- Author Controller
src/main/java/br/petersonaraujo/livraria/controller/autor/AutorController.java - Publisher Controller
src/main/java/br/petersonaraujo/livraria/controller/editora/EditoraController.java - Book Controller
src/main/java/br/petersonaraujo/livraria/controller/livro/LivroController.java - DTO Mappers
src/main/java/br/petersonaraujo/livraria/controller - Error Handler
src/main/java/br/petersonaraujo/livraria/exception/GlobalExceptionHandler.java - Spring Boot App
src/main/java/br/petersonaraujo/livraria/LivrariaApplication.java
Catalog Domain
- Author Service
src/main/java/br/petersonaraujo/livraria/service/autor/AutorService.java - Publisher Service
src/main/java/br/petersonaraujo/livraria/service/editora/EditoraService.java - Book Service
src/main/java/br/petersonaraujo/livraria/service/livro/LivroService.java - Author Entity
src/main/java/br/petersonaraujo/livraria/model/autor/AutorEntity.java - Publisher Entity
src/main/java/br/petersonaraujo/livraria/model/editora/EditoraEntity.java - Book Entity
src/main/java/br/petersonaraujo/livraria/model/livro/LivroEntity.java - Book Category
src/main/java/br/petersonaraujo/livraria/model/enums/Categoria.java
Persistence
- Author Repository
src/main/java/br/petersonaraujo/livraria/repository/autor/AutorRepository.java - Publisher Repository
src/main/java/br/petersonaraujo/livraria/repository/editora/EditoraRepository.java - Book Repository
src/main/java/br/petersonaraujo/livraria/repository/livro/LivroRepository.java - H2 Database
src/main/resources/application.yaml
Other components
- API Client
Connections 26
- API Client → Author Controller: sends requests
- API Client → Publisher Controller: sends requests
- API Client → Book Controller: sends requests
- Author Controller → DTO Mappers: maps DTOs
- Publisher Controller → DTO Mappers: maps DTOs
- Book Controller → DTO Mappers: maps DTOs
- Author Controller → Author Service: invokes
- Publisher Controller → Publisher Service: invokes
- Book Controller → Book Service: invokes
- Author Service → Author Repository: queries and saves
- Publisher Service → Publisher Repository: queries and saves
- Book Service → Book Repository: queries and saves
- Book Service → Author Repository: resolves authors
- Book Service → Publisher Repository: resolves publisher
- Author Repository → Author Entity: persists
- Publisher Repository → Publisher Entity: persists
- Book Repository → Book Entity: persists
- Book Entity → Author Entity: associates authors
- Book Entity → Publisher Entity: references publisher
- Book Entity → Book Category: classifies by
- Author Service → Error Handler: raises domain errors
- Publisher Service → Error Handler: raises domain errors
- Book Service → Error Handler: raises domain errors
- Spring Boot App → Author Controller: hosts routes
- Spring Boot App → Publisher Controller: hosts routes
- Spring Boot App → Book Controller: hosts routes