Created a demo app for CBA.
It exposes the below rest API's
Swagger URL:
http://localhost:8080/swagger-ui/index.html
- JDK 17
- Maven Build
- Spring boot web – (For exposing REST API’s)
- Spring boot JPA – (For CRUD operations)
- Spring boot Test – (For creating unit test cases)
- Spring boot Actuator – (For monitoring the application health)
- Spring boot Security – (for securing REST API’s)
- Spring boot Validation – ( For native & Custom bean validation)
- Spring Kafka – (For producing & Consuming messages for Kafka)
- Spring Doc – (for Open API document specification)
- Java MySQL Connector – (for accessing MySQL database)
- LAMBOG – (For avoid boiler plate code)
- GitHub – (For version control )
- VS Code – (IDE for web development)
- Kafka – For message queues
- MySQL – For database
- config/ErrorHandlingControllerAdvice .java - Custom global error handling for Rest API's
- config/ISBNValidation. java - Custom Bean Annotation for ISBN number
- config/ISBNValidator.java - Custom validation for ISBN number
- config/KafkaConsumerConfig.java - Auto configuration for Kafka consumer
- config/KafkaProducerConfig. java - Auto configuration for Kafka Producer
- config/KafkaTopicConfig. java - Kafka Server and Topic configuration
- controller/BookController.java - Exposes rest API's for the library
- model/Book. java - Entity/Bean class for Book
- model/ValidationErrorResponse. java - Model wrapper for custom error handling
- model/Violation. java - Model for custom error handling
- presistence/BookRepository.java - Native ORM for CRUD operations
- presistence/CustomBookRepo.java - Interface for Custom ORM
- presistence/CustomRepoImpl.java - Implementation for Custom ORM
- service/BookService. java. - Controller for exposing API’s
- LibrarydemoApplication.java. - Spring boot App initialiser
- /resources/application.properties- Application configuration file
- /resources/data.sql - SQL queries for inserting Mock Data
- /test/LibraryDemoApplicationTest.java - Unit test cases for REST API’s contoller methods
- /pom.xml - Maven Build file
