Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Digital Library API 🌐

Java Spring Boot Database REST API

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.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages