Условие задачи
Вам необходимо создать простое 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) + есть логирование.