REST API для сервиса YaMDb — базы отзывов о фильмах, книгах и музыке.
- Описание
- Документация
- Алгоритм регистрации пользователей
- Пользовательские роли
- Доступные методы
- Использование
- Технологии
- Участники
API для сервиса YaMDb. Позволяет работать со следующими сущностями:
-
Отзывы:
- получить список всех отзывов;
- создать новый отзыв;
- получить отзыв по id;
- частично обновить отзыв по id;
- удалить отзыв по id.
-
Комментарии к отзывам:
- Получить список всех комментариев к отзыву по
id
; - создать новый комментарий для отзыва, получить комментарий для отзыва по
id
; - частично обновить комментарий к отзыву по
id
; - удалить комментарий к отзыву по
id
.
- Получить список всех комментариев к отзыву по
-
JWT-токен:
- Отправление confirmation_code на переданный
email
; - получение JWT-токена в обмен на
email
иconfirmation_code
.
- Отправление confirmation_code на переданный
-
Пользователи:
- получить список всех пользователей;
- создание пользователя получить пользователя по
username
; - изменить данные пользователя по
username
; - удалить пользователя по
username
; - получить данные своей учетной записи;
- изменить данные своей учетной записи.
-
Категории (типы) произведений:
- получить список всех категорий;
- создать категорию;
- удалить категорию.
-
Категории жанров:
- получить список всех жанров
- создать жанр;
- удалить жанр.
-
Произведения, к которым пишут отзывы:
- получить список всех объектов;
- создать произведение для отзывов;
- информация об объекте;
- обновить информацию об объекте;
- удалить произведение.
- Пользователь отправляет запрос с параметром email на
/auth/email/
. - YaMDB отправляет письмо с кодом подтверждения
(confirmation_code)
на адресemail
. - Пользователь отправляет запрос с параметрами
email
иconfirmation_code
на/auth/token/
, в ответе на запрос ему приходитtoken
(JWT-токен). - При желании пользователь отправляет PATCH-запрос на
/users/me/
и заполняет поля в своём профайле (описание полей — в документации).
- Аноним — может просматривать описания произведений, читать отзывы и комментарии.
- Аутентифицированный пользователь — может, как и Аноним, читать всё, дополнительно он может публиковать отзывы и ставить рейтинг произведениям (фильмам/книгам/песням), может комментировать чужие отзывы и ставить им оценки; может редактировать и удалять свои отзывы и комментарии.
- Модератор — те же права, что и у Аутентифицированного пользователя плюс право удалять любые отзывы и комментарии.
- Администратор — полные права на управление проектом и всем его содержимым. Может создавать и удалять категории и произведения. Может назначать роли пользователям.
- Администратор Django — те же права, что и у роли Администратор.
/api/v1/posts (GET, POST, PUT, PATCH, DELETE)
/api/v1/posts/<id> (GET, POST, PUT, PATCH, DELETE)
/api/v1/posts/<id>/comments (GET, POST, PUT, PATCH, DELETE)
/api/v1/posts/<id>/comments/<id> (GET, POST, PUT, PATCH, DELETE)
/api/v1/group/ (GET, POST)
/api/v1/follow/ (GET, POST)
.env.template
cat .env.template
SECRET_KEY
DEBUG
DJANGO_ALLOWED_HOSTS
DEFAULT_FROM_EMAIL
DB_ENGINE
DB_NAME
POSTGRES_USER
POSTGRES_PASSWORD
DB_HOST
DB_PORT
- При каждом push в ветку
master
разворачивается и деплоится новая версия приложения:
on:
push:
branches:
- master
- vamotest - управление пользователями (Auth и Users):
- система регистрации и аутентификации;
- права доступа, работа с токеном;
- система подтверждения e-mail, поля.
- kleine-alberta - категории (Categories), жанры (Genres) и произведения (Titles):
- модели и view;
- эндпойнты.
- MrGrumpy87 - отзывы (Review) и комментарии (Comments):
- модели и view;
- эндпойнты;
- права доступа для запросов;
- рейтинги произведений.