Skip to content

noskov-sergey/api_yamdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

О проекте:

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

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

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

git clone git@github.com:irinaexzellent/api_yamdb.git
cd api_yamdb

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

python3 -m venv env
source venc/Scripts/activate

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

python3 -m pip install --upgrade pip
pip install -r requirements.txt

Выполнить миграции:

python3 manage.py migrate

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

python3 manage.py runserver

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

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

в ответе на запрос ему приходит token (JWT-токен). При желании пользователь отправляет PATCH-запрос на эндпоинт:

/api/v1/users/me/ 

и заполняет поля в своём профайле (описание полей — в документации).

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

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

в ответе на запрос ему приходит token (JWT-токен). При желании пользователь отправляет PATCH-запрос на эндпоинт:

/api/v1/users/me/ 

и заполняет поля в своём профайле (описание полей — в документации).

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

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

AUTH

Регистрация нового пользователя. POST-запрос с параметрами: email, username.

/auth/signup/

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

**Получение JWT-токена. POST-запрос с параметрами: username, confirmation code. **

/auth/token/

Права доступа: Доступно без токена.

USERS

Получение списка всех пользователей. GET-запрос.

/users/ Права доступа: Администратор

Добавить нового пользователя. POST-запрос с параметрами: username(required), email(required), first_name, last_name, bio, role.

Права доступа: Администратор

Получение пользователя по username. GET-запрос.

/users/username/

Права доступа: Администратор

Изменение данных о пользователе по username. PATCH-запрос с параметрами: username(required), email(required), first_name, last_name, bio, role.

/users/username/

Права доступа: Администратор

Удаление данных о пользователе по username. DELETE-запрос.

/users/username/

Права доступа: Администратор

Получить данные своей учетной записи. GET-запрос.

/users/username/me/

Права доступа: Любой авторизованный пользователь

Изменение данных своей учетной записи. PATCH-запрос с параметрами: username(required), email(required), first_name, last_name, bio.

/users/username/me/

Права доступа: Любой авторизованный пользователь

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors