Skip to content

Latest commit

 

History

History
125 lines (91 loc) · 5.4 KB

File metadata and controls

125 lines (91 loc) · 5.4 KB

Проект YaMDb

Описание

Приложение для оценки различных произведений

Проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории: «Книги», «Фильмы», «Музыка». Список категорий может быть расширен администратором.

Сами произведения в 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/

Примеры запросов к API:

Получение списка всех категорий:

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. Данные необходимо размещать перед выполнением миграций.