Skip to content

API для системы хранения отзывов к произведениям культуры. Python + Django

License

Notifications You must be signed in to change notification settings

firepanda70/api_yamdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект API YaMDBb

Описание

Проект YaMDb собирает отзывы пользователей на различные произведения.

Установка

  • Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/firepanda70/api_yamdb
cd api_yamdb
  • Cоздать и активировать виртуальное окружение:
python -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
  • Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
  • Указать переменные среды в файле .env:
DJANGO_KEY=secret_key
ALLOWED_HOSTS=localhost
  • Выполнить миграции:
python3 manage.py migrate
  • Добавить тестовые данные:
python3 manage.py loaddata fixtures.json
# Суперюзер тестовых данных: admin
# Пароль: admin
  • Запустить проект:
python3 manage.py runserver

Использование

Алгоритм регистрации пользователей

  1. Пользователь отправляет POST-запрос на добавление нового пользователя с параметрами email и username на эндпоинт /api/v1/auth/signup/.
  2. YaMDB отправляет письмо с кодом подтверждения (confirmation_code) на адрес email.
  3. Пользователь отправляет POST-запрос с параметрами username и confirmation_code на эндпоинт /api/v1/auth/token/, в ответе на запрос ему приходит token (JWT-токен).

Пользовательские роли

  • Аноним — может просматривать описания произведений, читать отзывы и комментарии.
  • Аутентифицированный пользователь (user) — может, как и Аноним, читать всё, дополнительно он может публиковать отзывы и ставить оценку произведениям, может комментировать чужие отзывы; может редактировать и удалять свои отзывы и комментарии. Эта роль присваивается по умолчанию каждому новому пользователю.
  • Модератор (moderator) — те же права, что и у Аутентифицированного пользователя плюс право удалять любые отзывы и комментарии.
  • Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.

Документация

Подробная документация находится в файле redoc.yaml в api_yamdb/static/. Будет доступна после запуска проекта по эндпоинту /redoc/

Авторы

thelie - управление пользователями (Auth и Users): система регистрации и аутентификации, права доступа, работа с токеном, система подтверждения e-mail, поля.

IPfa - категории (Categories), жанры (Genres) и произведения (Titles): модели, view и эндпойнты для них.

firepanda70 - отзывы (Review) и комментарии (Comments): модели и view, эндпойнты, права доступа для запросов. Рейтинги произведений.

Технологии

  • Python 3
  • Django
  • Django REST Framework
  • SQLite3
  • Simple-JWT

Лицензия

MIT License

About

API для системы хранения отзывов к произведениям культуры. Python + Django

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published