Проект 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
- Пользователь отправляет POST-запрос на добавление нового пользователя с параметрами email и username на эндпоинт:
/api/v1/auth/signup/
- YaMDB отправляет письмо с кодом подтверждения confirmation_code на адрес email.
- Пользователь отправляет POST-запрос с параметрами username и confirmation_code на эндпоинт:
/api/v1/auth/token/
в ответе на запрос ему приходит token (JWT-токен). При желании пользователь отправляет PATCH-запрос на эндпоинт:
/api/v1/users/me/
и заполняет поля в своём профайле (описание полей — в документации).
- Пользователь отправляет POST-запрос на добавление нового пользователя с параметрами email и username на эндпоинт:
/api/v1/auth/signup/
- YaMDB отправляет письмо с кодом подтверждения confirmation_code на адрес email.
- Пользователь отправляет POST-запрос с параметрами username и confirmation_code на эндпоинт:
/api/v1/auth/token/
в ответе на запрос ему приходит token (JWT-токен). При желании пользователь отправляет PATCH-запрос на эндпоинт:
/api/v1/users/me/
и заполняет поля в своём профайле (описание полей — в документации).
- Аноним — может просматривать описания произведений, читать отзывы и комментарии.
- Аутентифицированный пользователь (user) — может, как и Аноним, читать всё, дополнительно он может публиковать отзывы и ставить оценку произведениям (фильмам/книгам/песенкам), может комментировать чужие отзывы; может редактировать и удалять свои отзывы и комментарии. Эта роль присваивается по умолчанию каждому новому пользователю.
- Модератор (moderator) — те же права, что и у Аутентифицированного пользователя плюс право удалять любые отзывы и комментарии.
- Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
- Суперюзер Django — обладет правами администратора (admin)
Регистрация нового пользователя. POST-запрос с параметрами: email, username.
/auth/signup/
Код подтверждения передаетсся email. Права доступа: Доступно без токена. Использовать имя 'me' в качестве username запрещено.
**Получение JWT-токена. POST-запрос с параметрами: username, confirmation code. **
/auth/token/
Права доступа: Доступно без токена.
Получение списка всех пользователей. 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/
Права доступа: Любой авторизованный пользователь