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

 

History

135 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 git@github.com: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

 
 
 

Contributors 3

  •  
  •  
  •  

Languages