REST API для социальной сети Yatube, созданной в рамках курса Яндекс.Практикум
Аутентификация по JWT-токену
Работает со всеми модулями социальной сети Yatube: постами, комментариями, группами, подписчиками
Поддерживает методы GET, POST, PUT, PATCH, DELETE
Предоставляет данные в формате JSON
- проект написан на Python с использованием Django REST Framework
- библиотека Simple JWT - работа с JWT-токеном
- система управления версиями - git
- Клонируйте репозитроий с проектом:
git clone https://github.com/leks20/api_yatube
- В созданной директории установите виртуальное окружение, активируйте его и установите необходимые зависимости:
python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
-
Создайте в директории файл .env и поместите туда SECRET_KEY, необходимый для запуска проекта:
- сгенерировать ключ можно на сайте Djecrety
-
Выполните миграции:
python manage.py migrate
- Создайте суперпользователя:
python manage.py createsuperuser
- Запустите сервер:
python manage.py runserver
api/v1/posts/ - все постов,
api/v1/posts/{id}/ - один пост,
api/v1/groups/ - список групп (можно выбрать в качестве темы поста),
api/v1/groups/{id}/ - одна группы,
api/v1/{post_id}/comments/ - все комментарии под определенным постом,
api/v1/{post_id}/comments/{id}/ - конкретный комментарий под определенным постом,
Исключение: follow доступен только авторизованных пользователей.
api/v1/follow/ - получение подписок текущего пользователя
api/v1/follow/{id}/ - получение одной подписки
api/v1/follow/posts/ - получение всех постов избранных авторов
users доступен только для админа:
api/v1/users/ - все пользователи
api/v1/users/{id}/ - один пользователь
Авторизованные пользователи могут создавать посты, комментировать их и подписываться на других пользователей. Пользователи могут изменять(удалять) контент, автором которого они являются. Так же в проекте присутсвует пагинация(LimitOffsetPagination), поиск и сортировка, примеры ниже
api/v1/posts/?limit=10&offset=0 - Пагинация на 10 постов, начиная с первого
api/v1/posts/?search=your_search - Поиск в тексте, постов пользователя, группы
api/v1/posts/?ordering=-pub_date - сортировка по дате создания постов(сначало новые)
admin/admin/ - после авторазиации, перейдите в раздел "сообщества" и создайте сообщества
Доступ авторизованным пользователем доступен по jwt-токену, который можно получить выполнив POST запрос по адресу:
api/v1/jwt/create/
Передав в body данные пользователя:
{
"username": "your_nickname",
"password": "your_password"
}
Получив токен его нужно добавить в headers, после этого вам буду доступны все функции проекта:
Authorization: Bearer {your_token} Проверить и обновить токен можно по следующием эндпоинтам:
api/v1/jwt/refresh/ - Обновление токена
api/v1/jwt/verify/ - Проверка токена