You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RESTful API для автоматизации цифровой библиотеки. Этот проект является эволюцией консольной системы и представляет собой полноценный бэкенд-сервис, готовый к интеграции с веб- или мобильным фронтендом. Реализует полный цикл CRUD-операций для управления книгами, пользователями и процессами выдачи литературы.
🔥 Функциональные возможности
RESTful Архитектура: Четкое разделение ресурсов, использование правильных HTTP-методов (GET, POST, PUT, DELETE) и статус-кодов.
Управление Книгами (Books Management): Добавление, обновление информации, удаление и фильтрация каталога.
Управление Пользователями (Users Management): Регистрация читателей и сотрудников, ведение профилей.
Учет Аренды (Borrowing System): Эндпоинты для выдачи книг, фиксации возвратов и отслеживания должников.
Валидация данных: Входные данные (DTO) строго валидируются перед обработкой, исключая некорректные запросы в БД.
🛠 Стек технологий
Язык разработки: Java 17+
Фреймворк: Spring Boot (Spring Web, Spring Data JPA)
Сборщик проектов: Maven / Gradle
База данных: H2 (для тестов / разработки) или PostgreSQL/MySQL
Архитектурный паттерн: Слоистая архитектура (Controller - Service - Repository)
🗺 Документация REST API (Основные эндпоинты)
📚 Книги (/api/books)
Метод
Эндпоинт
Описание
GET
/api/books
Получить список всех книг (с поддержкой фильтрации)
GET
/api/books/{id}
Получить детальную информацию о книге по ID
POST
/api/books
Добавить новую книгу в систему (Admin только)
PUT
/api/books/{id}
Обновить данные существующей книги
DELETE
/api/books/{id}
Удалить книгу из каталога
👥 Пользователи (/api/users)
Метод
Эндпоинт
Описание
GET
/api/users
Получить список зарегистрированных пользователей
POST
/api/users
Регистрация нового пользователя / читателя
🔄 Выдача и возврат (/api/borrow)
Метод
Эндпоинт
Описание
POST
/api/borrow
Оформить выдачу книги читателю (в теле запроса userId и bookId)
POST
/api/borrow/return/{id}
Зафиксировать возврат книги в библиотеку
📐 Архитектура папок (Пакеты)
📁 src/main/java/com/example/digitallibrary/
│
├── 📁 controllers/ # REST-контроллеры (обработка HTTP-запросов)
├── 📁 models/ # Сущности базы данных (Entities)
├── 📁 dtos/ # Объекты переноса данных (Request/Response DTOs)
├── 📁 repositories/ # Интерфейсы Spring Data JPA для работы с БД
├── 📁 services/ # Классы с основной бизнес-логикой приложения
└── DigitalLibraryApplication.java # Главный класс запуска
🚀 Инструкция по локальному запуску
Требования
JDK 17 или выше.
Сборщик Maven (встроенный mvnw идет в комплекте).
Запуск проекта
Клонируйте репозиторий:
Bash
git clone [https://github.com/NuraliKalmahanbet/Digital_Library_API.git](https://github.com/NuraliKalmahanbet/Digital_Library_API.git)
Перейдите в папку проекта:
Bash
cd Digital_Library_API
Соберите проект и запустите приложение:
Bash
./mvnw spring-boot:run
(Если вы используете Windows, то команда: mvnw.cmd spring-boot:run)
Приложение успешно запустится на порту 8080. Корневой URL: http://localhost:8080
About
RESTful API for a Digital Library System built with Java, managing books, authors, users, and borrowing transactions.