Приложение для оценки различных произведений
Проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории: «Книги», «Фильмы», «Музыка». Список категорий может быть расширен администратором.
Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку.
В каждой категории есть произведения: книги, фильмы или музыка. Например, в категории «Книги» могут быть произведения «Винни-Пух и все-все-все» и «Марсианские хроники», а в категории «Музыка» — песня «Давеча» группы «Насекомые» и вторая сюита Баха.
Произведению может быть присвоен жанр из списка предустановленных. Новые жанры может создавать только администратор.
Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку в диапазоне от одного до десяти; из пользовательских оценок формируется усреднённая оценка произведения — рейтинг. На одно произведение пользователь может оставить только один отзыв.
Для запуска проекта необходимо клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/RussianPostman/api_yamdb.git
cd api_yamdb
Cоздать и активировать виртуальное окружение:
python3 -m venv venv (для *nix-систем)
source venv/bin/activate (для *nix-систем)
python -m venv venv (для Windows-систем)
env/Scripts/activate.bat (для Windows-систем)
Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip (для *nix-систем)
python -m pip install --upgrade pip (для Windows-систем)
pip install -r requirements.txt
Выполнить миграции:
python3 manage.py migrate (для *nix-систем)
python manage.py migrate (для Windows-систем)
Запустить проект:
python3 manage.py runserver (для *nix-систем)
python manage.py runserver (для Windows-систем)
Перейти в браузере по адресу
http://127.0.0.1:8000
Для получения доступа необходимо создать пользователя отправив POST запрос на эндпоинт /api/v1/auth/signup/
username и email
Запрос:
{
"email": "string",
"username": "string"
}
После этого на email придет код подтверждения, который вместе с username необходимо отправить POST запросом на эндпоинт/api/v1/auth/token/
Запрос:
{
"username": "string",
"confirmation_code": "string"
}
Ответ:
{
"access": "string"
}
Полученный токен используется для авторизации
Для просмотра и изменения своих данных используйте эндпоинт /api/v1/users/me/
Получение списка всех категорий:
http://127.0.0.1:8000/api/v1/categories/
Получение списка всех жанров:
http://127.0.0.1:8000/api/v1/genres/
Получение списка всех произведений:
http://127.0.0.1:8000/api/v1/titles/
К проекту по адресу
http://127.0.0.1:8000/redoc/
подключена документация API YaMDb. В ней описаны возможные запросы к API и структура ожидаемых ответов. Для каждого запроса указаны уровни прав доступа: пользовательские роли, которым разрешён запрос.
В проекте есть возможность сделать наполнение проекта первоначальными данными. Для этого необходимо в директории static
разместить папку data
. В ней должны быть .csv-файлы с именами category.csv
, comments.csv
, genre_title.csv
, genre.csv
, review.csv
, titles.csv
и users.csv
. Данные необходимо размещать перед выполнением миграций.