A comprehensive Spring Boot REST API for managing books and authors with a MySQL database. This project demonstrates best practices for building scalable, production-grade Java applications using Spring Data JPA, validation, error handling, and API documentation.
? Table of Contents
Features
Technology Stack
Prerequisites
Installation
Configuration
Project Structure
API Endpoints
Database Schema
Running the Application
API Documentation
Error Handling
File Upload
Validation
Contributing
✨ Features
✅ RESTful API for Books and Authors management
✅ Spring Data JPA for seamless database operations
✅ MySQL Database Integration with automatic schema creation
✅ Input Validation with custom validators and error messages
✅ Comprehensive Error Handling with global exception handler
✅ File Upload Functionality for storing book-related files
✅ Swagger/OpenAPI Documentation for easy API exploration
✅ Scheduled Tasks using ShedLock for distributed systems
✅ DTO Pattern for clean separation of concerns
✅ Lombok for reducing boilerplate code
✅ IP Address Validation for request filtering
?️ Technology Stack
Technology Version Purpose
Java 17 Programming language
Spring Boot 2.6.1 Framework & HTTP server
Spring Data JPA 2.6.1 ORM & database access
MySQL Latest Relational database
Lombok 1.18.22 Boilerplate reduction
Swagger/OpenAPI 1.6.4 API documentation
ShedLock 4.27.0 Scheduled task coordination
Maven 3.6+ Build & dependency management
? Prerequisites
Before running this project, ensure you have:
Java 17 or higher installed
Maven 3.6+ installed
MySQL 8.0+ server running
Git for cloning the repository