Загрузка данных


Условие задачи
Вам необходимо создать простое REST API приложение для управления списком книг. Данные хранятся в памяти (список словарей).

Модель данных (Книга)
Каждая книга должна содержать:

id (int): Автоматически генерируется (начинается с 1).

title (str): Название книги. Обязательное поле.

author (str): Автор книги. Обязательное поле.

year (int): Год издания. Должен быть от 1900 до 2026.

Что нужно реализовать (ТОЛЬКО 4 эндпоинта)
1. POST /books/ - Добавление книги
Принимает JSON без id.

Возвращает созданную книгу с присвоенным id.

Статус код: 201 Created.

2. GET /books/ - Получение всех книг
Возвращает список всех книг.

Статус код: 200 OK.

3. GET /books/{book_id} - Получение книги по ID
Возвращает одну книгу по её ID.

Если книга не найдена → вернуть {"error": "Book not found"} со статусом 404.

4. DELETE /books/{book_id} - Удаление книги
Удаляет книгу по ID.

Если книга не найдена → вернуть {"error": "Book not found"} со статусом 404.

При успешном удалении → вернуть {"message": "Book deleted"}.

Технические требования (обязательные)
Pydantic: Использовать схемы для валидации входящих данных (минимум 1 символ для строк, диапазон для года).

Логирование: Каждый запрос должен выводить в консоль сообщение:

"Request: POST /books/"

"Request: GET /books/"

"Request: GET /books/1"

"Request: DELETE /books/1"

Swagger: Приложение должно автоматически генерировать документацию по адресу /docs.

Критерии оценки (5 баллов)
1 балл: Правильно создана Pydantic схема и настроена базовая валидация.

1 балл: Реализованы GET-эндпоинты (все книги + по ID).

1 балл: Реализован POST-эндпоинт с генерацией ID.

1 балл: Реализован DELETE-эндпоинт.

1 балл: Приложение запускается, все эндпоинты работают (проверяется через Swagger) + есть логирование.