YaMDb - проект для публикации отзывов о различных произведениях интеллектуальной собственности (фильмы, книги, музыка и проч)
API позволяет взаимодействовать с проектом YaMDb посредством отправки запросов на URL интерфейса.
- Django 3.2
- Django REST Framework 3.12.4
- Django REST Framework Simple JWT 4.8.0
- Библиотека csv для возможности импорта в Базу данных
Клонировать репозиторий и перейти в него в терминале:
git clone https://github.com/AlexanderPAI/api_final_yatube.gitПерейти в каталог склонированного проекта:
cd api_yamdbСоздать и активировать виртуальное окружение:
# Linux:
python3 -m venv venv
source venv/bin/activate
# Windows:
python -m venv venv
source venv/Script/activateУстановить зависимости из файла requirements.txt:
Linux:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
Windows:
python -m pip install --upgrade pip
pip install -r requirements.txtВыполнить миграции:
# Перейти в подкаталог api_yamdb/api_yamdb/
cd api_yamdb
# Выполнить миграции
python3 manage.py migrate
python3 manage.py makemigrations
python3 manage.py migrateЗапустить проект:
Linux:
python3 manage.py runserver
Windows:
python3 manage.py runserverДля создания пользователя необходимо отправить запрос на эндпоинт:
http://127.0.0.1:8000/api/v1/auth/signup/
Пример запроса:
{
"username": "ivan",
"email": "ivan@yandex.ru"
}На указанный адрес электронной почты будет отправлен четырехзначный код подтверждения (в данном проекте не подключен smtp-сервер - отправка письма осуществляется путем эмуляции почтового сервера средствами Django, письма сохраняются в каталог sent_mails)
Для последующего получения токена необходимо оправить запрос с username пользователя и confirmation_code на эндпоинт:
http://127.0.0.1:8000/api/v1/auth/token/
Пример запроса:
{
"username": "ivan",
"confirmation_code": 3364
}В ответ на указанный запрос будет возвращен JWT-токен
Доступна после запуска проекта - см. п.4: http://127.0.0.1:8000/redoc/
Разместить в каталоге проекта static/data/ csv-файлы, соответствующие названиям моделей.
Например static/data/category.csv
Ввести в консоли:
python manage.py import_cvsasgiref==3.6.0
atomicwrites==1.4.1
attrs==22.2.0
certifi==2022.12.7
cffi==1.15.1
charset-normalizer==2.0.12
colorama==0.4.6
coreapi==2.3.3
coreschema==0.0.4
cryptography==39.0.1
defusedxml==0.7.1
Django==3.2
django-filter==22.1
django-templated-mail==1.1.1
djangorestframework==3.12.4
djangorestframework-simplejwt==4.8.0
flake8==6.0.0
idna==3.4
iniconfig==2.0.0
isort==5.12.0
itypes==1.2.0
Jinja2==3.1.2
MarkupSafe==2.1.2
mccabe==0.7.0
oauthlib==3.2.2
packaging==23.0
pluggy==0.13.1
py==1.11.0
pycodestyle==2.10.0
pycparser==2.21
pyflakes==3.0.1
PyJWT==2.1.0
pytest==6.2.4
pytest-django==4.4.0
pytest-pythonpath==0.7.3
python3-openid==3.2.0
pytz==2022.7.1
requests==2.26.0
requests-oauthlib==1.3.1
six==1.16.0
social-auth-app-django==4.0.0
social-auth-core==4.3.0
sqlparse==0.4.3
toml==0.10.2
uritemplate==4.1.1
urllib3==1.26.14