Це перший навчальний проект на ютуб-каналі "Святий рандом", на якому ми вивчаємо програмування на реальних проектах.
Бібліотека - це REST API для управління книжками в бібліотеці. Користувач зможе додавати нові книжки, видаляти чи редагувати існуючі.
Технології: Java15, Spring Boot2, Spring Data, Maven, PostgreSQL, Docker
Створюємо проект, публікуємо його на GitHub, вивчаємо як працює RestController та підключаємо Swagger.
Створюємо BookService і використовуємо його в RestController
Підключаємо базу даних (on-memory) H2, створюємо BookRepository і використовуємо його в BookService
Підключаємо базу даних PostgreSQL за допомогою docker-compose
Пагінація і пошук (фільтр)
Пишемо перші тести та підключаємо GitHub Actions
Валідація і обробка помилок
Client API
Book and Client relationship
DTO for API
Ендпоінт для expired bookInUse з тестами
Виправлення N + 1 помилки для expired bookInUse
Додаємо Spring Security до проєкту і робимо невеличку конфігурацію
Конфігуруємо Spring Security для перевірки користувачів з бази