Skip to content

ElenaL1/api_final_yatube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API для Yatube

Описание проекта API для Yatube

Проект Yatube является социальной сетью, где любой пользователь может просматривать записи интересующей группы или автора. Аутентифицированные пользователи могут создавать собственные посты, подписываться на других авторов и оставлять комментарии к записям. Изменять или удалять записи имеет право лишь автор. Посты пользователей могут быть разделены по категориям групп.

В данном проекте реализован REST API для проекта Yatube. Из проекта исключён фронтенд и view-функции приложения posts. Аутентификация по JWT-токену. Поддерживает методы GET, POST, PUT, PATCH, DELETE. Предоставляет данные в формате JSON.

Стек технологий

Проект написан на Python с использованием веб-фреймворка Django REST Framework.

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

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

git clone git@github.com:ElenaL1/api_final_yatube.git
cd api_final_yatube

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

py -3.9 -m venv env
source env/bin/activate

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

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

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

python manage.py migrate

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

python manage.py runserver

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

В проекте предусмотрены следующие эндпоинты:

api/v1/jwt/(create/, refresh/, verify/) (POST): передаём логин и пароль, 
получаем JWT-токен, обновляем JWT-токен и проверяем JWT-токен.
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.
api/v1/follow/ (GET, POST): получаем информацию о подписках и создаем подписки.

Пример POST-запроса с токеном пользователя "Anton" на добавление нового поста: POST .../api/v1/posts/

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

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

{
"id": 1,
"author": "Anton",
"text": "Вечером собрались в редакции «Русской мысли», чтобы поговорить о народном театре. Проект Шехтеля всем нравится.",
"pub_date": "2019-08-24T14:15:22Z",
"image": null,
"group": 1
}

Более подробно информацию об эндпоинтах и примерах запросов и ответов можно посмотреть в

/api_final_yatube/yatube_api/static/redoc.yaml

About

api final yatube

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published