Наш основной проект yatubeпредставляет собой социальную сеть для публикации личных дневников. Это сайт, на котором пользователь может создать свою страницу и публиковать на ней сообщения («посты»). Проект api_final позволяет получать информацию из проекта yatube с помощю API.
У неаутентифицированных пользователей доступ к API есть только на чтение. Исключение — эндпоинт /follow/: доступ к нему предоставляется только аутентифицированным пользователям. Аутентифицированные пользователи могут измененять и удалять свой контент. В остальных случаях доступ предоставляется только для чтения.
Через API нельзядобавить новых пользователей.
Проект реализован на Django Rest Framework.
- Проверьте, что виртуальное окружение развёрнуто и активировано, зависимости проекта установлены.
- Установите все необходимые пакеты из requirements.txt.
- Выполните миграции.
- Перейдите в директорию с файлом
manage.pyи запустите сервер.
- api/v1/posts/ (GET, POST): получаем список всех постов или создаём новый пост. Пример POST-запроса: { "text": "string", "image": "string", "group": 0 }
- api/v1/posts/{post_id}/ (GET, PUT, PATCH, DELETE): получаем, редактируем или удаляем пост с идентификатором{post_id}.
- api/v1/groups/ (GET): получаем список всех сообществ.
- api/v1/groups/{group_id}/ (GET): получаем информацию о сообществе с идентификатором {group_id}.
- api/v1/posts/{post_id}/comments/ (GET): получаем список всех комментариев поста с идентификатором {post_id} (POST): создаём новый комментарий для поста с идентификатором {post_id}. Пример: { "text": "string" }
- api/v1/posts/{post_id}/comments/{comment_id}/ (GET, PUT, PATCH, DELETE): получаем, редактируем или удаляем комментарий с идентификатором {comment_id} в посте с идентификатором {post_id}.
- api/v1/follow/ (GET): Возвращает все подписки пользователя, сделавшего запрос. Анонимные запросы запрещены. (POST): Подписка пользователя от имени которого сделан запрос на пользователя переданного в теле запроса. Анонимные запросы запрещены. Пример: { "following": "string" }
- api/v1/jwt/create/ (POST): Передаём логин и пароль, получаем токен. Пример: { "username": "string", "password": "string" }
- api/v1/jwt/refresh/ (POST): Обновление токена. Пример: { "refresh": "string" }
- api/v1/jwt/verify/ (POST): Проверка токена. Пример: { "token": "string" }