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 (возможен поиск по параметру search)
- POST - подписка на автора (нельзя дублировать подписки и подписываться на самого себя)
Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/Julka3561/api_final_yatube.git
cd api_final_yatube
Cоздать и активировать виртуальное окружение:
python -m venv env
source venv/scripts/activate
python -m pip install --upgrade pip
Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
Выполнить миграции:
python manage.py migrate
Запустить проект:
python manage.py runserver