Бэкенд проекта YaMDb.
Проект собирает отзывы пользователей на произведения. API позволяет создавать, редактировать, удалять отзывы, а также ставить произведению оценку.
- django2
- djangorestframework
- python3
Заполните файл infra/.env следующими данными.
SECRET_KEY=yoursecretkey
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=userpassword
DB_HOST=db
DB_PORT=5432
При необходимости поменяйте значения на желаемые.
Выполните docker-compose up -d
Затем соберите статические файлы командой docker-compose exec web python manage.py collectstatic --no-input
И примените миграции командой docker-compose exec web python manage.py migrate
Проект готов к использованию.
Для наполнения базы тестовыми данными из приложенных csv-файлов используйте команду docker-compose exec web python manage.py filldb
Для наполнения базы тестовыми данными из приложенного json-файла используйте команду docker-compose exec -T web python manage.py loaddata --format json - < ../fixtures.json
Чтобы создать пользователя с правами администратора, выполните docker-compose exec web python manage.py createsuperuser и укажите требуемые данные.
Секретный ключ можно сгенерировать командой docker-compose exec web python -c 'print(__import__("django.core.management.utils", fromlist=[""]).get_random_secret_key())'
Документация по API доступна по пути /redoc/ в запущенном проекте.
- Пользователь отправляет POST-запрос на добавление нового пользователя с параметрами
emailиusernameна эндпоинт/api/v1/auth/signup/. - YaMDB отправляет письмо с кодом подтверждения (
confirmation_code) на адресemail. - Пользователь отправляет POST-запрос с параметрами
usernameиconfirmation_codeна эндпоинт/api/v1/auth/token/, в ответе на запрос ему приходитtoken(JWT-токен). - При желании пользователь отправляет PATCH-запрос на эндпоинт
/api/v1/users/me/и заполняет поля в своём профиле.
Репозиторий содержит pytest-тесты, они были предоставлены автором шаблона данного проекта.