[go: up one dir, main page]

Skip to content

Valentina-LIS/REST_API_yatube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

REST API для проекта Yatube.

Описание проекта:

Yatube - социальная сеть для публикации личных дневников. Проект предоставляет пользователям возможность зарегистрироваться, создать, отредактировать или удалить собственный пост, прокомментировать пост другого автора и подписаться на него. Реализованы возможности поиска и фильтрации данных. Через этот интерфейс могут работать мобильное приложение или чат-бот; данные через этот API можно передавать на фронтенд.

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

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

git clone https://github.com/yandex-praktikum/kittygram.git
cd kittygram

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

python3 -m venv env
source env/bin/activate

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

python3 -m pip install --upgrade pip
pip install -r requirements.txt

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

python3 manage.py migrate

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

python3 manage.py runserver

Эндпоинты для взаимодействия с ресурсами:

api/v1/api-token-auth/ (POST): передать логин и пароль, чтобы получить токен.
api/v1/posts/ (GET, POST): получить список всех постов или создать новый пост.
api/v1/posts/{post_id}/ (GET, PUT, PATCH, DELETE): получить, редактировать или удалить пост по id.
api/v1/groups/ (GET): получить список всех групп.
api/v1/groups/{group_id}/ (GET): получить информацию о группе по id.
api/v1/posts/{post_id}/comments/ (GET, POST): получить список всех комментариев поста с id=post_id или создать новый, указав id поста, который хотим прокомментировать.
api/v1/posts/{post_id}/comments/{comment_id}/ (GET, PUT, PATCH, DELETE): получить, редактировать или удалить комментарий по id у поста с id=post_id.

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

Пример POST-запроса с токеном Антона Чехова: добавление нового поста.

[POST] .../api/v1/posts/

{
    "text": "Вечером собрались в редакции «Русской мысли», чтобы поговорить о народном театре. Проект Шехтеля всем нравится.",
    "group": 1
}

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

{
    "id": 14,
    "text": "Вечером собрались в редакции «Русской мысли», чтобы поговорить о народном театре. Проект Шехтеля всем нравится.",
    "author": "anton",
    "image": null,
    "group": 1,
    "pub_date": "2021-06-01T08:47:11.084589Z"
}

Пример POST-запроса с токеном Антона Чехова: отправляем новый комментарий к посту с id=14.

[POST] .../api/v1/posts/14/comments/
{
    "text": "тест тест",
} 

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

{
    "id": 4,
    "author": "anton",
    "post": 14,
    "text": "тест тест",
    "created": "2021-06-01T10:14:51.388932Z"
} 

Пример GET-запроса с токеном Антона Чехова: получаем информацию о группе.

[GET] .../api/v1/groups/2/

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

{
    "id": 2,
    "title": "Математика",
    "slug": "math",
    "description": "Посты на тему математики"
}

About

REST API для проекта.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published