Skip to content

API для Yatube на основе Django REST framework. Реализует управление сайтом через программный интерфейс взаимодействия.

Notifications You must be signed in to change notification settings

kireev20000/API-FInal-YaTube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект «API для Yatube»

Yatube - проект социальной сети. «API для Yatube» расширяет возможности социальной сети. Новый функционал позволяет пользователям публиковать свои посты и управлять подписками через программный интерфейс взаимодействия.

Реализованы возможности

  • Получение, создание, обновление, удаление публикаций.
  • Получение, создание, обновление, удаление комментариев к публикациям.
  • Просмотр сообществ и детальной информации о них.
  • Отслеживание подписок на авторов, а так же возможность подписки на интересующего автора поста.
  • Получение, обновление и проверка JWT авторизации.

Технологии

  • Python - язык программирования.
  • Django - свободный фреймворк для веб-приложений на языке Python.
  • Django REST Framework - мощный и гибкий набор инструментов для создания веб-API.
  • Simple JWT - плагин аутентификации JSON Web Token для Django REST Framework.

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

Клонировать репозиторий и перейти в него в командной строке:

git clone git@github.com:kireev20000/API-FInal-YaTube.git

cd api_final_yatube

Создать и активировать виртуальное окружение:

  • python3 -m venv env
  • source env/bin/activate
  • python3 -m pip install --upgrade pip

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

Выполнить миграции: python3 manage.py migrate

Запустить проект: python3 manage.py runserver

После запуска проекта, документация будет доступна по адресу:

http://localhost:port/redoc/

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

POST-запрос с токеном, добавление новой публикации в коллекцию публикаций.

POST http://localhost:port/api/v1/posts/

{
  "text": "Однажды в студеную зимнюю пору, я из лесу вышел, был сильный мороз!",
  "group": 1
}

Ответ:

{
    "id": 9,
    "author": "root",
    "text": "Однажды в студеную зимнююю пору, я из лесу вышел, был сильный мороз!",
    "pub_date": "2021-09-22T02:37:44.494905Z",
    "image": null,
    "group": 1
}

GET-запрос, получение информации о сообществе по id=2.

GET http://localhost:port/api/v1/groups/2/

Ответ:

{
    "id": 2,
    "title": "group2",
    "slug": "group2",
    "description": "group2"
}

POST-запрос, подписка авторизованного пользователя user=root от имени которого сделан запрос на автора интересующей публикации following=admin.

POST http://localhost:port/api/v1/follow/

{
  "following": "admin"
}

Ответ:

{
    "id": 6,
    "user": "root",
    "following": "admin"
}

About

API для Yatube на основе Django REST framework. Реализует управление сайтом через программный интерфейс взаимодействия.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published