Skip to content

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

Notifications You must be signed in to change notification settings

PrimeStr/api_RateHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект 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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published