Это API для проекта YaMDb, который позволяет пользователям оставлять отзывы на произведения, такие как фильмы, книги, музыка и т.п. API поддерживает регистрацию пользователей, аутентификацию через JWT-токены, а также CRUD-операции для отзывов, комментариев, категорий, жанров и произведений.
-
Регистрация и аутентификация пользователей:
- Регистрация нового пользователя.
- Получение JWT-токена по коду подтверждения.
- Управление профилем пользователя (для администраторов и суперпользователей).
-
Управление произведениями:
- Создание, редактирование и удаление произведений.
- Фильтрация произведений по жанрам, категориям, названию и году выпуска.
-
Отзывы и комментарии:
- Создание, редактирование и удаление отзывов на произведения.
- Создание, редактирование и удаление комментариев к отзывам.
-
Категории и жанры:
- Создание, редактирование и удаление категорий и жанров.
-
Клонируйте репозиторий:
git clone https://github.com/Demiat/api_yamdb.git cd api_yamdb/ -
Создайте и активируйте виртуальное окружение:
python -m venv venv source venv/bin/activate # Для Linux/MacOS venv\Scripts\activate # Для Windows
-
Установите зависимости:
pip install -r requirements.txt
-
Примените миграции:
python manage.py migrate
-
Импортируйте csv-файлы:
python manage.py import_csv static/data/-
Запустите сервер:
python manage.py runserver
-
API будет доступен по адресу:
Документация API и примеры запросов доступны в формате Redoc по адресу:
API использует throttling для предотвращения злоупотреблений. Настройки по умолчанию:
- Анонимные пользователи: 1000 запросов в день.
- Аутентифицированные пользователи: 10000 запросов в день.
- По умолчанию: 10 запросов в секунду.
- JWT-токены: Для аутентификации используются JWT-токены. Токен можно получить, отправив запрос на
/api/v1/auth/token/с кодом подтверждения. - Роли пользователей:
- Администратор: Может управлять пользователями, произведениями, категориями и жанрами.
- Модератор: Может редактировать и удалять отзывы и комментарии.
- Пользователь: Может оставлять отзывы и комментарии.