REST API для работы с веб-сайтом YaTube.
Позволяет просматривать, добавлять, редактировать и удалять следующие ресурсы:
- посты
- комментарии к постам
- подписки на авторов (только в режиме чтения и создания)
- группы (только в режиме чтения)
-
Просмотр групп, постов и комментариев к ним доступен всем пользователям.
-
Создание постов и комментариев, подписка на авторов и просмотр подписок доступно авторизованным пользователям.
-
Редактирование и удаление постов и комментариев доступно авторам контента.
- Эндпойнт
api/v1/jwt/create/
- GET - получение JWT-токена
- Эндпойнт
api/v1/jwt/refresh/
- GET - обновление JWT-токена
- Эндпойнт
api/v1/jwt/verify/
- GET - проверка JWT-токена
- Эндпойнт
api/v1/posts/
- GET - получение списка постов (возможна пагинация при указаниии параметров limit и offset)
- POST - создание нового поста
- Эндпойнт
api/v1/posts/{post_id}/
- GET - получение поста с указанным id
- PUT - полное изменение поста
- PATCH - частичное изменение поста
- DELETE - удаление поста
- Эндпойнт
api/v1/posts/{post_id}/comments/
- GET - получение списка комментариев для поста с указанным id
- POST - создание нового нового комментария для поста с указанным id
- Эндпойнт
api/v1/posts/{post_id}/comments/{id}/
- GET - получение комментария с указанным id
- PUT - полное изменение комментария
- PATCH - частичное изменение комментария
- DELETE - удаление комментария
- Эндпойнт
api/v1/groups/
- GET - получение списка доступных сообществ
- Эндпойнт
api/v1/groups/{id}/
- GET - получение информации о сообществе по id
- Эндпойнт
api/v1/follow/
- GET - все подписки пользователя, сделавшего запроc (возможен поиск по параметру searc)
- POST - подписка на автора (нельзя дублировать подписки и подписываться на самого себя)
Получение списка всех постов:
Method: GET
Endpoint: "/api/v1/posts/"
Публикация поста:
Method: POST
Endpoint: "/api/v1/posts/"
Payload:
{
"text": "string",
"group": 0
}
Получение JWT-токена:
Method: POST
Endpoint: "/api/v1/auth/jwt/create/"
Payload:
{
"username": "string",
"password": "string"
}
Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/lockwod/api_final_yatube.git
cd api_final_yatube
Cоздать и активировать виртуальное окружение:
python -m venv env
source venv/scripts/activate
Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
Запустить проект:
python manage.py runserver