Проект YaMDb собирает отзывы пользователей на произведения. Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку. Проект выполнен студентами 72 кагорты Яндекс Практикума.
Произведения(Titles) делятся на категории(Categories). Список категорий может быть расширен. Произведению может быть присвоен жанр(Genre) из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Добавлять произведения, категории и жанры может только администратор. Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы(Review) и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг((raiting)) (целое число). На одно произведение пользователь может оставить только один отзыв. Пользователи могут оставлять комментарии(Сomments) к отзывам. Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи.
программа | версия |
---|---|
Django | 3.2.16 |
pytest | 6.2.4 |
pytest-pythonpath | 0.7.3 |
pytest-django | 4.4.0 |
djangorestframework | 3.12.4 |
djangorestframework-simplejwt | 4.7.2 |
Pillow | 9.3.0 |
PyJWT | 2.8.0 |
requests | 2.26.0 |
djoser | 2.1.0 |
Клонировать репозиторий с GitHub
git clone git@github.com:boginskiy/api-Yatube.git
Установить виртуальное окружение venv
python3 -m venv venv
Aктивировать виртуальное окружение venv
source venv/bin/activate
Обновить менеджер пакетов pip
python3 -m pip install --upgrade pip
Установить зависимости из файла requirements.txt
pip install -r requirements.txt
Выполнить миграции
python3 manage.py migrate
Запустить проект
python3 manage.py runserver
Зарегестрироваться POSThttp://127.0.0.1:8000/api/v1/auth/signup/
.
Получить код подтверждения на переданный email. Права доступа: Доступно без токена. Использовать имя 'me' в качестве username запрещено. Поля email и username должны быть уникальными. Должна быть возможность повторного запроса кода подтверждения.
email -required string <= 254 characters username - required string <= 150 characters ^[\w.@+-]+\Z
Получение списка всех произведений GET http://127.0.0.1:8000/api/v1/titles/
.
Добавление новой публикации в коллекцию публикаций. Анонимные запросы запрещены.
{
"count": 0,
"next": "string",
"previous": "string",
"results": [
{
"id": 0,
"name": "string",
"year": 0,
"rating": 0,
"description": "string",
"genre": [
{
"name": "string",
"slug": "string"
}
],
"category": {
"name": "string",
"slug": "string"
}
}
]
}
Получить список всех пользователей. Права доступа: Администратор GET http://127.0.0.1:8000/api/v1/users/
.
{
"count": 0,
"next": "string",
"previous": "string",
"results": [
{
"username": "string",
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"bio": "string",
"role": "user"
}
]
}