Спринт 10. Командный проект. API для Yamdb.
Сервис YaMDb — база отзывов о фильмах, книгах и музыке.
Документация для YaMDb:
Произведения, к которым пишут отзывы: получить список всех объектов, создать произведение для отзывов, информация об объекте, обновить информацию об объекте, удалить произведение.
Категории произведений: получить список всех категорий, создать категорию, удалить категорию.
Категории жанров: получить список всех жанров, создать жанр, удалить жанр.
Отзывы: получить список всех отзывов, создать новый отзыв, получить отзыв по id, частично обновить отзыв по id, удалить отзыв по id.
Комментарии к отзывам: получить список всех комментариев к отзыву по id, создать новый комментарий для отзыва, получить комментарий для отзыва по id, частично обновить комментарий к отзыву по id, удалить комментарий к отзыву по id.
Пользователи: получить список всех пользователей, создание пользователя, получить пользователя по username, изменить данные пользователя по username, удалить пользователя по username, получить данные своей учетной записи, изменить данные своей учетной записи.
JWT-токен: отправить confirmation_code на переданный email, получение JWT-токена в обмен на email и confirmation_code.
-
Клонировать репозиторий:
git clone git@github.com:VictorTsyganov/api_yamdb.git
-
Перейти в папку с проектом:
cd api_yamdb/
-
Установить виртуальное окружение для проекта:
py -3.9 -m venv venv
-
Активировать виртуальное окружение для проекта:
# для OS Lunix и MacOS source venv/bin/activate # для OS Windows source venv/Scripts/activate
-
Установить зависимости:
python -m pip install --upgrade pip pip install -r requirements.txt
-
Добавить секретный ключ в .env файл и выполнить миграции на уровне проекта:
cd api_yamdb/ python manage.py makemigrations python manage.py migrate
-
Заполнить базу данных и запустить проект:
python manage.py uploader python manage.py runserver
# Документаия проекта
http://127.0.0.1:8000/redoc/
# ПО для тестирования API, Postman
https://www.postman.com/
- Python 3.7+
- Works on Linux, Windows, macOS
-
Python 3.7
-
Django 3.2
-
DRF
-
JWT
Александр Лапп - управление пользователями (Auth и Users): система регистрации и аутентификации, права доступа, работа с токеном, система подтверждения e-mail, поля.
Виктор Цыганов - категории (Categories), жанры (Genres) и произведения (Titles): модели, view и эндпойнты для них.
Екатерина Рагуткина - отзывы (Review) и комментарии (Comments): модели и view, эндпойнты, права доступа для запросов. Рейтинги произведений.
- Для удаления имеющихся записей из базы данных, необходимо в командной строке, из дериктории, в которой находится файл manage.py, запустить команду python manage.py uploader --delete-existing.
- Для справки - python manage.py uploader -h или --help.
- Для загрузки данных из csv файлов в базу данных, необходимо в командной строке, из дериктории, в которой находится файл manage.py, запустить команду python manage.py uploader.
- При возникновении ошибок, данные о них будут отражены в терминале.