Skip to content

API онлайн-платформы для рецензий на продукты массовой культуры

Notifications You must be signed in to change notification settings

RavenIV/api_yamdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект YaMDb

Описание

Проект YaMDb собирает отзывы пользователей на различные произведения. Запросы к API начинаются с /api/v1/.

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

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

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

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

Регистрация нового пользователя

Получить код подтверждения на переданный email. Права доступа: Доступно без токена. Использовать имя 'me' в качестве username запрещено. Поля email и username должны быть уникальными. Должна быть возможность повторного запроса кода подтверждения.

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

Получение JWT-токена в обмен на username и confirmation code. Права доступа: Доступно без токена.

Использованные технологии

В проекте были использованы следующие фреймворки и библиотеки:

  • Python (3.9)
  • Django (3.2): Высокоуровневый веб-фреймворк Python
  • djangorestframework (3.12.4): Гибкий фреймворк для построения веб-API
  • requests (2.26.0): Библиотека Python для отправки HTTP-запросов
  • rest_framework_simplejwt: Библиотека для работы с JWT-токенами
  • django-filter (23.5): Библиотека для фильтрации данных на основе полей моделей

Как запустить проект

Клонировать репозиторий и перейти в него в командной строке:

git clone [email protected]:RavenIV/api_yamdb.git
cd api_yamdb/

Создать и активировать виртуальное окружение:

python3 -m venv venv
source venv/bin/activate

Установить зависимости из файла requirements.txt:

pip install -r requirements.txt

Выполнить миграции из директории проекта:

cd api_yamdb/
python3 manage.py migrate

Импортировать данные из CSV-файлов:

python3 manage.py import_csv

Запустить проект:

python3 manage.py runserver

Где посмотреть документацию

Документацию к API проекта YAMDB, содержащую примеры запросов и ожидаемых ответов, можно посмотреть после запуска проекта по ссылке.

Разработчики

  • Ирина Воронцова GitHub
  • Сергей Запорожан GitHub
  • Лада Колотова GitHub

About

API онлайн-платформы для рецензий на продукты массовой культуры

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages