YaMDb API
Описание
Учебный командный проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории: «Книги», «Фильмы», «Музыка». К отзыву можно оставить комментарий.
Стек технологий:
- Python 3.9
- Django 2.2.16
- SimpleJWT
- Django filter 2.4
- SQLite3
Как развернуть проект на локальной машине:
- Склонировать репозиторий:
git clone https://github.com/Stas767/api_yamdb-1.git
cd api_yamdb-1
- Cоздать виртуальное окружение:
python3 -m venv venv
- Активировать виртуальное окружение:
source env/bin/activate
- Обновить пакетный менеджер:
python -m pip install --upgrade pip
- Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
- Выполнить миграции:
python manage.py migrate
- Запустить проект:
python manage.py runserver
- Заполнить БД тестовыми данными из csv-таблиц.
python3 manage.py add_csv
Примеры запросов:
Запрос к произведению:
[GET] /api/v1/titles/1/
Ответ:
{
"id": 1,
"name": "Побег из Шоушенка",
"year": 1994,
"description": "",
"genre": [
{
"name": "Драма",
"slug": "drama"
}
],
"category": {
"name": "Фильм",
"slug": "movie"
},
"rating": 10.0
}
Запрос к отзывам на произведение:
[GET] /api/v1/titles/1/reviews/
Ответ:
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": 2,
"text": "Не привыкай\n«Эти стены имеют одно свойство: сначала ты их ненавидишь, потом привыкаешь, а потом не можешь без них жить»",
"author": "capt_obvious",
"score": 10,
"pub_date": "2022-10-25T12:38:39.707082Z"
},
{
"id": 1,
"text": "Ставлю десять звёзд!\n...Эти голоса были чище и светлее тех, о которых мечтали в этом сером, убогом месте. Как будто две птички влетели и своими голосами развеяли стены наших клеток, и на короткий миг каждый человек в Шоушенке почувствовал себя свободным.",
"author": "bingobongo",
"score": 10,
"pub_date": "2022-10-25T12:38:39.701077Z"
}
]
}
Запрос к комментариям отзыва:
[GET] /api/v1/titles/5/reviews/6/comments/
Ответ:
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"id": 3,
"text": "Кстати, а что такое \"четверть фунта\"? В граммах это сколько?",
"author": "reviewer",
"pub_date": "2022-10-25T12:38:40.173184Z"
},
{
"id": 2,
"text": "Ну надо же, не нашлось ничего лучшего, кроме как прокомментировать разговор про гамбургеры, будто в фильме ничего важнее этого нет",
"author": "capt_obvious",
"pub_date": "2022-10-25T12:38:40.167695Z"
},
{
"id": 1,
"text": "Ничего подобного, в фильме всё не так, и программирование тут вообще ни при чём!",
"author": "faust",
"pub_date": "2022-10-25T12:38:40.161874Z"
}
]
}
Авторы:
- Аркадий Крылов https://github.com/fog-contributor
- Станислав Балджи https://github.com/Stas767
- Игорь Жук https://github.com/ig0r-zhuk