API реализация проекта "YAMDB"
- 1. Кратко о сервисе
- 2. Полное описание
- 3. Функционал
- 4. Стек технологий
- 5. Установка проекта
- 6. Регистрация и авторизация
- 7. Импорт данных из .csv документов
- 8. Примеры запросов
- 9. Авторы
Сервис предоставляет возможность авторизованным пользователям оставлять отзывы на произведения и комментировать отзывы других пользователей. Произведения создаются только администратором сервиса.
Представлено в виде ReDoc-а по адресу <домен>/redoc/
(если проект установлен локально, то адрес http://127.0.0.1:8000/redoc/
)
- Реализована система регистрации и аутентификации пользователей
- Произведения могут создавать только администраторы проекта
- Авторизованные пользователи могут оставлять отзывы к произведениям
- Авторизованные пользователи могут оставлять комментарии к отзывам
- Python 3.9
- Django
- Django REST FrameWork
- Simple_JWT
- pytest
- Клонируйте репозиторий
git clone git@github.com:sqqqwer/api_yamdb.git
- Перейдите в проект
cd api_yamdb/
- Cоздайте и активировируйте виртуальное окружение:
python -m venv venv
Если Linux:
. venv/bin/activate
Если Windows:
. venv/Scripts/activate
- Обновите pip
python -m pip install --upgrade pip
- Установите зависимости из файла requirements.txt:
pip install -r requirements.txt
- Выполните миграции:
python manage.py migrate
- Запустите проект:
python manage.py runserver
- Вам необходимо перейти в
<domen_name>/api/v1/auth/signup/
- Отправьте POST-запрос в формате json
{
"username": "create_your_username",
"email": "enter_your_email_for_verification"
}
- Перейдите в
<domen_name>/api/v1/auth/token/
- Отправьте POST-запрос в формате json
{
"username": "entering_before_username",
"conformation_code": "code_which_you_get_on_specified_email"
}
- Вы получите токен авторизации для вашего пользователя
- Находясь в локальной директории
api_yamdb/
, создайте базу данных.
python manage.py migrate
- Запустите импортёр.
python manage.py load_from_csv '<project_dir>/api_yamdb/static/data'
Запрос
GET http://127.0.0.1:8000/api/v1/categories/
Ответ
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"name": "Фильм",
"slug": "movie"
},
{
"name": "Книга",
"slug": "book"
},
{
"name": "Музыка",
"slug": "music"
}
]
}
Запрос
DELETE http://127.0.0.1:8000/api/v1/users/regular_user/
Ответ
{
"detail": "Authentication credentials were not provided."
}
- Борисов Василий
- Чернявский Владислав
- Ермаков Виталий