PrimeStr / api_RateHub

API service that collects user feedback on artworks such as music, movies, books, etc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Проект RateHub

Python Django Pytest Postman

Описание

API RateHub.

Функционал

  • Проект RateHub собирает отзывы пользователей на произведения. Сами произведения в RateHub не хранятся, здесь нельзя посмотреть фильм или послушать музыку;
  • Произведения делятся на категории, такие как «Книги», «Фильмы», «Музыка» и т.д.;
  • Произведению может быть присвоен жанр из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»);
  • Добавлять произведения, категории и жанры может только администратор;
  • Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку. Из пользовательских оценок формируется усреднённая оценка произведения — рейтинг. На одно произведение пользователь может оставить только один отзыв;
  • Пользователи могут оставлять комментарии к отзывам;
  • Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи.

Установка

  1. Клонировать репозиторий:
git clone https://github.com/PrimeStr/api_RateHub.git
  1. Перейти в папку с проектом:
cd api_RateHub/
  1. Установить виртуальное окружение для проекта:
Если у вас OS Linux и MacOS
python3 -m venv venv
Если у вас OS Windows
python -m venv venv
  1. Активировать виртуальное окружение для проекта:

source можно заменить на .

Если у вас OS Linux и MacOS
source venv/bin/activate
Если у вас OS Windows и вы используете cmd или PowerShell
.\venv\Scripts\activate.ps1
Если у вас OS Windows и вы используете Bash
source venv/Scripts/activate
  1. Установить зависимости:
pip install -r requirements.txt
  1. Перейти в папку api_RateHub и выполнить миграции на уровне проекта:
cd api_RateHub/
Если у вас OS Linux и MacOS
python3 manage.py migrate
Если у вас OS Windows
python manage.py migrate
  1. Запустить проект локально:
Если у вас OS Linux и MacOS
python3 manage.py runserver
Если у вас OS Windows
python manage.py runserver

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

Все запросы отправляются на эндпоинт '/api/v1/'

Для начала нужно зарегистрировать пользователя : Отправить POST-запрос на эндпоинт '/auth/signup/' и передать в нём 2 поля:

{
   "email": "Ваша эл.почта",
   "username": "Ваше имя пользователя"
}

Получение токена

: Отправить POST-запрос на эндпоинт '/auth/token/' и передать в нём 2 поля:

{
   "username": "Ваше имя пользователя",
   "confirmation_code": "Ваш код подтверждения с эл.почты"
}

В ответе от API в поле"token"вы получите токен. Сохраните его.

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

: Отправить GET-запрос на эндпоинт /categories/. Возможен поиск по названию категории. В заголовке указывать тот самый скопированный ранее токен не обязательно. Эндпоинт доступен для всех. Но если нужно - просто указываем в Headers:Authorization:Bearer <токен>.

Пример ответа:

{
   "count": 3,
   "next": null,
   "previous": null,
   "results": [
      {
         "name": "Фильм",
         "slug": "movie"
      },
      {
         "name": "Книга",
         "slug": "book"
      },
      {
         "name": "Музыка",
         "slug": "music"
      }
   ]
}

Ресурсы

Документацию проекта вы можете найти по адресу:

http://127.0.0.1:8000/redoc/

Для доступа к документации проект должен быть запущен.

Для создания и тестирования API использовался Postman.

Выражаю свою благодарность коллегам, с которыми мы разделили создание этого проекта.

About

API service that collects user feedback on artworks such as music, movies, books, etc


Languages

Language:Python 99.6%Language:HTML 0.4%