REST API для социальной сети блогеров Yatube, созданной в рамках учебного курса Яндекс.Практикум Для аутентификации используется JWT-токен. Работает со всеми модулями Yatube: постами, комментариями, группами, подписками Поддерживает методы GET, POST, PUT, PATCH, DELETE Предоставляет данные в формате JSON Аутентифицированным пользователям разрешено изменение и удаление своего контента; в остальных случаях доступ предоставляется только для чтения. Доступ к подпискам и просмотру подписок предоставляется только аутентифицированным пользователям.
Клонировать репозиторий и перейти в него в командной строке:
git clone git@github.com:LynnG3/api_final_yatube.git
cd yandex_api
Cоздать и активировать виртуальное окружение:
python3 -m venv venv
source venv/bin/activate
Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
Выполнить миграции:
python3 manage.py migrate
Запустить проект:
python3 manage.py runserver
После запуска проекта, по адресу http://127.0.0.1:8000/redoc/ будет доступна документация для API Yatube. Документация представлена в формате Redoc.
PATCH запрос к модели публикации - частичное обновление http://127.0.0.1:8000/api/v1/posts/{id}/ успешный ответ (код 200):
{
"id": 0,
"author": "string",
"text": "string",
"pub_date": "2019-08-24T14:15:22Z",
"image": "string",
"group": 0
}
доступ запрещен (код 403)
{
"detail": "У вас недостаточно прав для выполнения данного действия."
}
GET запрос к модели публикации http://127.0.0.1:8000/api/v1/posts/{id}/ успешный ответ (код 200):
{
"id": 0,
"author": "string",
"text": "string",
"pub_date": "2019-08-24T14:15:22Z",
"image": "string",
"group": 0
}
пост не найден (код 404):
{
"detail": "Страница не найдена."
}
Проект написан на Python 3.9 с использованием DjangoRestFramework 3.12.4 Подключена библиотека Simple JWT для работы с JWT-токеном; реализация авторизации - с помощью пакета djoser2.1.0 Тестирование: pytest6.2.4 pytest-pythonpath0.7.3 pytest-django4.4.0 Система управления версиями - git
Минеев Владимир под руководством команды "Яндекс.Практикум" Аккаунт на Github: Atrocraz