Skip to content

RussianPostman/api_yamdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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