API YaMDb собирает отзывы пользователей на различные произведения такие как фильмы, книги и музыка.
API YaMDb позволяет работать со следующими сущностями:
- JWT-токен (Auth): отправить confirmation_code на переданный email, получить JWT-токен в обмен на email и confirmation_code;
- Пользователи (Users): получить список всех пользователей, создать пользователя, получить пользователя по username, изменить данные пользователя по username, удалить пользователя по username, получить данные своей учётной записи, изменить данные своей учётной записи;
- Произведения (Titles), к которым пишут отзывы: получить список всех объектов, создать произведение для отзывов, информация об объекте, обновить информацию об объекте, удалить произведение. пользователя по username, получить данные своей учётной записи, изменить данные своей учётной записи;
- Категории (Categories) произведений: получить список всех категорий, создать категорию, удалить категорию;
- Жанры (Genres): получить список всех жанров, создать жанр, удалить жанр;
- Отзывы (Review): получить список всех отзывов, создать новый отзыв, получить отзыв по id, частично обновить отзыв по id, удалить отзыв по id;
- Комментарии (Comments) к отзывам: получить список всех комментариев к отзыву по id, создать новый комментарий для отзыва, получить комментарий для отзыва по id, частично обновить комментарий к отзыву по id, удалить комментарий к отзыву по id.
Командиров Богдан - управление пользователями (Auth и Users): система регистрации и аутентификации, права доступа, работа с токеном, система подтверждения e-mail, поля;
Забавин Павел - категории (Categories), жанры (Genres) и произведения (Titles): модели, view и эндпойнты для них;
Малумашвили Никита - тимлид, отзывы (Review) и комментарии (Comments): модели и view, эндпойнты, права доступа для запросов. Рейтинги произведений.
git clone git@github.com:TLS228/api_yamdb.git
cd api_yamdb
python3 -m venv venv
source venv/bin/activate
python3 -m pip install --upgrade pip
pip install -r requirements.txt
cd api_yamdb
python3 manage.py migrate
python3 manage.py runserver
python3 manage.py import_data
Content type:
application/json
request samples №1:
http://127.0.0.1:8000/api/v1/categories/
response samples №1:
{
"count": 0,
"next": "string",
"previous": "string",
"results": [
{}
]
}
request samples №2:
http://127.0.0.1:8000/api/v1/titles/
payload №2:
{
"name": "string",
"year": 0,
"description": "string",
"genre": [
"string"
],
"category": "string"
}
response samples №2:
{
"id": 0,
"name": "string",
"year": 0,
"rating": 0,
"description": "string",
"genre": [
+ {...}
],
"category": {
"name": "string",
"slug": "^-$"
}
}