Позволяет создавть посты, разделять их на группы, подписываться на авторов.
Выполнен в рамках обучения в ЯП.
Cоздать и активировать виртуальное окружение:
python3 -m venv --prompt="api_finel_yatube" venv
source venv/bin/activate
Установить зависимости из файла requirements.txt:
pip install -U pip
pip install -Ur requirements.txt
Выполнить миграции:
python3 manage.py migrate
Запустить проект:
python3 manage.py runserver
Для аутентификации инспользуются JWT токены, на данный момент существуют следующие endpoint:
/api/v1/jwt/create/ - Создание токена /api/v1/jwt/refresh/ - Обновление токена /api/v1/jwt/viryfy/ - Проверка токена
Управление пользователями через API отсутствует.
У неаутентифицированных пользователей доступ к API только на чтение, за исключением /api/v1/follow/ - там только аутентифицированные пользователи.
Аутентифицированным пользователям разрешено изменение и удаление своего контента; в остальных случаях доступ предоставляется только для чтения.
Время жизни JWT-токена 1 день
Помимо эндпоинтов аутентификации доступны:
/api/v1/groups/ - Для просмотра списка групп
/api/v1/follow/ - Для просмотра и создания подписок на авторов
/api/v1/posts/ - Для просмотра и управления постами
Подробное описание API доступно по
/redoc/
POST запрос к /api/v1/jwt/create/ формата
{
"username": "string",
"password": "string"
}
В случае успеха возвращает код 200 и словарь вида:
{
"refresh": "string",
"access": "string"
}
Токен из access нужно использовать в заголовке Authorization, после Bearer для выполнения аутентифицированных запросов к API
GET запрос к /api/v1/posts/
Возвращает словарь:
{
"count": 123,
"next": "http://api.example.org/accounts/?offset=400&limit=100",
"previous": "http://api.example.org/accounts/?offset=200&limit=100",
"results": [
{
"id": 0,
"author": "string",
"text": "string",
"pub_date": "2021-10-14T20:41:29.648Z",
"image": "string",
"group": 0
}
]
}