/yatube_rest_api

:chart_with_upwards_trend:REST API for social network website

Primary LanguagePython

api_final

Данный API разработан для использования функционала социальной сети Yatube с помощью запросов.

Основные возможности: Подписываться на пользователя. Просматривать, создавать новые, удалять и изменять посты. Просматривать и создавать группы. Комментировать, смотреть, удалять и обновлять комментарии. Фильтровать по полям. Полная документация доступна по адресу http://localhost:8000/redoc/

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

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

git clone https://github.com/kora21/api_final_yatube
cd 

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

python3 -m venv env
  • Если у вас Linux/macOS

    source env/bin/activate
    
  • Если у вас windows

    source env/scripts/activate
    
python3 -m pip install --upgrade pip

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

pip install -r requirements.txt

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

python3 manage.py migrate

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

python3 manage.py runserver

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

Получение списка публикаций

Для получения списка публикаций необходимо отправить Get-запрос на адрес http://127.0.0.1:8000/api/v1/posts/. 

Пример ответа:

[
    {
        "id": 1,
        "author": "User1",
        "text": "SomeText",
        "pub_date": "2023-04-10",
        "group": 1
    },
    {
        "id": 2,
        "author": "User2",
        "text": "SomeNewText",
        "pub_date": "2022-04-06",
        "group": 2
    }
]

Добавление публикации

Для добавления новой публикации необходимо отправить POST-запрос на адрес http://127.0.0.1:8000/api/v1/posts/ в JSON формате:

{ "text": "Ваш текст", "group": 1 }

Пример ответа:

    {
        "id": 3,
        "author": "User2",
        "text": "Ваш текст",
        "pub_date": "2023-04-06",
        "group": 1
    }

Добавление комментария

Для добавления комментария необходимо отправить POST-запрос на адрес http://127.0.0.1:8000/api/v1/posts/1/comments/ в JSON формате:

{ "text": "текст комментария" }

Пример ответа:

{
    "id": 1,
    "author": "User1",
    "post": 1,
    "text": "текст комментария",
    "created": "2023-04-08"
} 

Добавление подписки

Для добавления новой подписки необходимо отправить POST-запрос на адрес http://127.0.0.1:8000/api/v1/follow/ в JSON формате с именем автора, на которого хотите подписаться:

{ "following": "name" }

Пример ответа:

{
    "id": 1,
    "user": "User1",
    "following": "name",
}