API RateHub.
- Проект RateHub собирает отзывы пользователей на произведения. Сами произведения в RateHub не хранятся, здесь нельзя посмотреть фильм или послушать музыку;
- Произведения делятся на категории, такие как «Книги», «Фильмы», «Музыка» и т.д.;
- Произведению может быть присвоен жанр из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»);
- Добавлять произведения, категории и жанры может только администратор;
- Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку. Из пользовательских оценок формируется усреднённая оценка произведения — рейтинг. На одно произведение пользователь может оставить только один отзыв;
- Пользователи могут оставлять комментарии к отзывам;
- Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи.
- Клонировать репозиторий:
git clone https://github.com/PrimeStr/api_RateHub.git
- Перейти в папку с проектом:
cd api_RateHub/
- Установить виртуальное окружение для проекта:
python3 -m venv venvpython -m venv venv
- Активировать виртуальное окружение для проекта:
source venv/bin/activate
.\venv\Scripts\activate.ps1source venv/Scripts/activate
- Установить зависимости:
pip install -r requirements.txt
- Перейти в папку api_RateHub и выполнить миграции на уровне проекта:
cd api_RateHub/
python3 manage.py migratepython manage.py migrate
- Запустить проект локально:
python3 manage.py runserverpython 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/
Для доступа к документации проект должен быть запущен.