Форматирование кода, добавление лого, исправление тестов, улучшение эндпоинтов и документации

This commit is contained in:
2025-11-30 20:03:39 +03:00
parent a3ccd8a466
commit 99de648fa9
38 changed files with 1261 additions and 308 deletions

View File

@@ -1,3 +1,4 @@
![logo](./logo.png)
# LibraryAPI
Это проект приложения на FastAPI - современном веб фреймворке для создания API на Python. Я использую Pydantic для валидации данных, SQLModel для взаимодействия с базой данных, Alembic для управления миграциями, PostgreSQL как систему базы данных и Docker Compose для легкого развертывания.
@@ -52,42 +53,48 @@
### **Эндпоинты API**
**Авторы**
| Метод | Эндпоинты | Описание |
|--------|-----------------------|---------------------------------------------|
| POST | `/authors` | Создать нового автора |
| GET | `/authors` | Получить список всех авторов |
| GET | `/authors/{id}` | Получить конкретного автора по ID с книгами |
| PUT | `/authors/{id}` | Обновить конкретного автора по ID |
| DELETE | `/authors/{id}` | Удалить конкретного автора по ID |
| GET | `/authors/{id}/books` | Получить список книг для конкретного автора |
| Метод | Эндпоинты | Описание |
|--------|-----------------------|---------------------------------|
| POST | `/authors` | Создать нового автора |
| GET | `/authors` | Получить список всех авторов |
| GET | `/authors/{id}` | Получить автора по ID с книгами |
| PUT | `/authors/{id}` | Обновить автора по ID |
| DELETE | `/authors/{id}` | Удалить автора по ID |
**Книги**
| Метод | Эндпоинты | Описание |
|--------|-----------------------|----------------------------------------------|
| POST | `/books` | Создать новую книгу |
| GET | `/books` | Получить список всех книг |
| GET | `/book/{id}` | Получить конкретную книгу по ID с авторами |
| PUT | `/books/{id}` | Обновить конкретную книгу по ID |
| DELETE | `/books/{id}` | Удалить конкретную книгу по ID |
| GET | `/books/{id}/authors` | Получить список авторов для конкретной книги |
| Метод | Эндпоинты | Описание |
|--------|-----------------------|---------------------------------|
| POST | `/books` | Создать новую книгу |
| GET | `/books` | Получить список всех книг |
| GET | `/book/{id}` | Получить книгу по ID с авторами |
| PUT | `/books/{id}` | Обновить книгу по ID |
| DELETE | `/books/{id}` | Удалить книгу по ID |
**Жанры**
| Метод | Эндпоинты | Описание |
|--------|-----------------------|----------------------------------------------|
| POST | `/genres` | Создать новый жанр |
| GET | `/genres` | Получить список всех жанров |
| GET | `/genres/{id}` | Получить конкретный жанр по ID |
| PUT | `/genres/{id}` | Обновить конкретный жанр по ID |
| DELETE | `/genres/{id}` | Удалить конкретный жанр по ID |
| GET | `/books/{id}/genres` | Получить список жанров для конкретной книги |
| Метод | Эндпоинты | Описание |
|--------|-----------------------|---------------------------------|
| POST | `/genres` | Создать новый жанр |
| GET | `/genres` | Получить список всех жанров |
| GET | `/genres/{id}` | Получить жанр по ID |
| PUT | `/genres/{id}` | Обновить жанр по ID |
| DELETE | `/genres/{id}` | Удалить жанр по ID |
**Связи**
| Метод | Эндпоинты | Описание |
|--------|------------------------------|-----------------------------------------|
| GET | `/relationships/author-book` | Получить список всех связей автор-книга |
| POST | `/relationships/author-book` | Добавить связь автор-книга |
| DELETE | `/relationships/author-book` | Удалить связь автор-книга |
| Метод | Эндпоинты | Описание |
|--------|------------------------------|-----------------------------------|
| GET | `/authors/{id}/books` | Получить список книг для автора |
| GET | `/books/{id}/authors` | Получить список авторов для книги |
| POST | `/relationships/author-book` | Связать автор-книга |
| DELETE | `/relationships/author-book` | Разделить автор-книга |
| GET | `/genres/{id}/books` | Получить список книг для жанра |
| GET | `/books/{id}/genres` | Получить список жанров для книги |
| POST | `/relationships/genre-book` | Связать автор-книга |
| DELETE | `/relationships/genre-book` | Разделить автор-книга |
**Другие**
| Метод | Эндпоинты | Описание |
|--------|-------------|-------------------------------|
| GET | `/api/info` | Получить информацию о сервисе |
### **Используемые технологии**