Проект YaMDb собирает отзывы пользователей на различные произведения
Полное описание API http://yamdb.aveter77.site/redoc/
Эндпоинты http://yamdb.aveter77.site/api/v1/
Образ доступен на Dockerhub.
- Пользователь отправляет 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/
и заполняет поля в своём профайле (описание полей — в документации).
- Аноним — может просматривать описания произведений, читать отзывы и комментарии.
- Аутентифицированный пользователь (
user
) — может, как и Аноним, читать всё, дополнительно он может публиковать отзывы и ставить оценку произведениям (фильмам/книгам/песенкам), может комментировать чужие отзывы; может редактировать и удалять свои отзывы и комментарии. Эта роль присваивается по умолчанию каждому новому пользователю. - Модератор (
moderator
) — те же права, что и у Аутентифицированного пользователя плюс право удалять любые отзывы и комментарии. - Администратор (
admin
) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям. - Суперюзер Django — обладет правами администратора (
admin
)
- Python 3.7
- Django 2.2.16
- Django Rest Framework 3.12.4
- PostgreSQL 13.0
- gunicorn 20.0.4
- nginx 1.21.3
- Docker 20.10.17
- Docker Compose 1.29.2
Установите переменные среды, как в .env.example
.
cd infra/
docker-compose up -d
После запуска выполните команды:
docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py createsuperuser
docker-compose exec web python manage.py collectstatic --no-input
cd infra/
cat fixtures.json | docker-compose exec -T web python manage.py loaddata --format=json -
Регистрация нового пользователя:
POST /api/v1/auth/signup/
{
"email": "string",
"username": "string"
}
Получение JWT-токена:
POST /api/v1/auth/token/
{
"username": "string",
"confirmation_code": "string"
}
Получение списка всех пользователей:
GET /api/v1/users/
Регистрация пользователя:
POST /api/v1/auth/signup/
{
"email": "string",
"username": "string"
}
Полная документация по API доступна после запуска http://localhost/redoc/
Александр Николаев
MIT