/api_yamdb-1

api_yamdb

Primary LanguagePython

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"
        }
    ]
}

Авторы: