Проект YaMDb собирает отзывы пользователей на произведения. Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку.
Произведению может быть присвоен жанр из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»).Добавлять произведения, категории и жанры может только администратор.
Пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку в диапазоне от одного до десяти; из пользовательских оценок формируется усреднённая оценка произведения — рейтинг. На одно произведение пользователь может оставить только один отзыв. Пользователи могут оставлять комментарии к отзывам. Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи.
- Django
- Python 3.11
- Django REST framework
- [JWT, Djoser]
Клонировать репозиторий и перейти в него в командной строке:
git clone [email protected]:MaxRadzey/api_yamdb.git
cd api_yamdb
Cоздать и активировать виртуальное окружение:
python3 -m venv env
source env/bin/activate
Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
Выполнить миграции:
python3 manage.py migrate
Запустить проект:
python3 manage.py runserver
Импорт БД Для импорта БД в проекте необходимо указать команду: Перед импортом необходимо убедиться, что БД пустая
python3 manage.py add_database
После локального запуска проекта документация будет доступна по адресу: http://127.0.0.1:8000/redoc/
- Пользователь отправляет POST-запрос с параметрами email и username на эндпоинт /api/v1/auth/signup/.
- Сервис YaMDB отправляет письмо с кодом подтверждения (confirmation_code) на указанный адрес email.
- Пользователь отправляет POST-запрос с параметрами username и confirmation_code на эндпоинт /api/v1/auth/token/, в ответе на запрос ему приходит token (JWT-токен).
В результате пользователь получает токен и может работать с API проекта, отправляя этот токен с каждым запросом.
Администратор создаёт пользователей через админ-зону сайта или через POST-запрос на специальный эндпоинт api/v1/users/ (описание полей запроса для этого случая есть в документации). При создании пользователя не предполагается автоматическая отправка письма пользователю с кодом подтверждения.
После этого пользователь должен самостоятельно отправить свой email и username на эндпоинт /api/v1/auth/signup/ , в ответ ему должно прийти письмо с кодом подтверждения.
Далее пользователь отправляет POST-запрос с параметрами username и confirmation_code на эндпоинт /api/v1/auth/token/, в ответе на запрос ему приходит token (JWT-токен), как и при самостоятельной регистрации.
http://127.0.0.1:8000/api/v1/categories/ - Получить список всех категорий
http://127.0.0.1:8000/api/v1/genres/ - Получить список всех жанров
http://127.0.0.1:8000/api/v1/titles/ - Получить список всех объектов
http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/ - Получить список всех отзывов
http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/{review_id}/comments/ - Получить список всех комментариев к отзыву по id
http://127.0.0.1:8000/api/v1/users/ - Получить список всех пользователей