Skip to content

Umiacha/api_final_yatube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

REST-сервис, написанный с помощью Django REST framework. Он позволяет создавать, получать или изменять записи, а также оставлять комментарии "под ними" и оформлять подписки на пользователей (правда последнее пока что бесполезно).

Установка

Клонируйте репозиторий:
git clone git@github.com:Umiacha/api_final_yatube.git

Перейдите в директорию проекта:

cd api_final_yatube

Установить виртуальное окружение:

python3 -m venv venv

И активировать его (пример для bash):

. venv/bin/activate

Установить зависимости из файла requirements.txt:

pip install -r requirements.txt

Выполнить миграции:

python manage.py migrate

Запустить проект:

python manage.py runserver

Примеры запросов

Для получения списка эндпоинтов с полным описанием поведения сервиса можно открыть в браузере страницу redoc/ по url-адресу запущенного сервиса. Для меня это:
https://127.0.0.1:8000/redoc/

А благодаря Browsable API можно отправлять запросы и читать ответы прямо в браузере. Для этого достаточно открыть желаемый URL-адрес в отдельной вкладке. Все эндпоинты доступны на чтение анонимным пользователям (за исключением api/follow/.*$. Он только для авторизованных), однако для создания, изменения или удаления объектов необходимо быть авторизованным.

Для верификации используются JWT-токены. Для получения такого нужно, чтобы ваш аккаунт был добавлен в базу данных проекта. Это пока что возможно только через админ-панель Django или CLI Django.

Самый простой путь -- создать суперпользователя, который даст доступ и к админ-панели, и к запросам сервису:

python manage.py createsuperuser

После этого необходимо отправить JSON с ключами username и password вашего пользователя на адрес:

https://127.0.0.1/api/v1/jwt/create/

Полученный access-токен теперь и используем для доступа к сервису, передавая его в заголовках запроса в формате:

"Authorization: Bearer <ваш токен>"

About

Study project on DRF with API docs on Redoc and JWT-auth.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published