В проекте реализован интерфейс API, благодаря которому социальная сеть "Yatube" сможет взаимодействовать с другой программой.
программа | версия |
---|---|
Django | 2.2.16 |
pytest | 6.2.4 |
pytest-pythonpath | 0.7.3 |
pytest-django | 4.4.0 |
djangorestframework | 3.12.4 |
djangorestframework-simplejwt | 4.7.2 |
Pillow | 8.3.1 |
PyJWT | 2.1.0 |
requests | 2.26.0 |
djoser | 2.1.0 |
Клонировать репозиторий с GitHub
git clone git@github.com:boginskiy/api-Yatube.git
Установить виртуальное окружение venv
python3 -m venv venv
Aктивировать виртуальное окружение venv
source venv/bin/activate
Обновить менеджер пакетов pip
python3 -m pip install --upgrade pip
Установить зависимости из файла requirements.txt
pip install -r requirements.txt
Выполнить миграции
python3 manage.py migrate
Создать суперпользователя
python3 manage.py createsuperuser
Запустить проект
python3 manage.py runserver
Получить спискок публикаций (GET): http://127.0.0.1:8000/api/v1/posts/
- При настройки постраничного вывода контента необходимо указать параметры: limit - количество публикаций на страницу; offset - номер страницы после которой начинать выдачу
- Допустимы анонимные запросы от пользователей
Создание публикации (POST): http://127.0.0.1:8000/api/v1/posts/
# Тело запроса
{
"text": "string",
"group": 1
}
- Добавить публикацию может только авторизованный пользователь
Получить публикацию (GET): http://127.0.0.1:8000/api/v1/posts/{post_id}/
- {post_id} - id публикации
- Допустимы анонимные запросы от пользователей
Обновление публикации (PUT): http://127.0.0.1:8000/api/v1/posts/{post_id}/
# Тело запроса
{
"text": "string",
"image": "string",
"group": 0
}
- {post_id} - id публикации
- Обновить публикацию может только автор публикации
Частичное обновление публикации (PATCH): http://127.0.0.1:8000/api/v1/posts/{post_id}/
# Тело запроса
{
"text": "string",
"image": "string",
"group": 0
}
- {post_id} - id публикации
- Частично обновить публикацию может только автор публикации
Удаление публикации (DELETE): http://127.0.0.1:8000/api/v1/posts/{post_id}/
- {post_id} - id публикации
- Удалить публикацию может только автор публикации
Получение всех комментариев к публикации (GET): http://127.0.0.1:8000/api/v1/posts/{post_id}/comments/
- {post_id} - id публикации с комментариями
- Допустимы анонимные запросы от пользователей
Добавление нового комментария к публикации (POST): http://127.0.0.1:8000/api/v1/posts/{post_id}/comments/
# Тело запроса
{
"text": "string"
}
- {post_id} - id публикации с комментариями
- Добавить комментарий к публикации может только авторизованный пользователь
Получение комментария к публикации по id (GET): http://127.0.0.1:8000/api/v1/posts/{post_id}/comments/{id}
- {post_id} - id публикации с комментариями
- {id} - id комментария
- Допустимы анонимные запросы от пользователей
Обновление комментария к публикации по id (PUT): http://127.0.0.1:8000/api/v1/posts/{post_id}/comments/{id}
# Тело запроса
{
"text": "string"
}
- {post_id} - id публикации с комментариями
- {id} - id комментария
- Обновить комментарий может только автор комментария
Частичное обновление комментария к публикации по id (PUTCH): http://127.0.0.1:8000/api/v1/posts/{post_id}/comments/{id}
# Тело запроса
{
"text": "string"
}
- {post_id} - id публикации с комментариями
- {id} - id комментария
- Частично обновить комментарий может только автор комментария
Удаление комментария к публикации по id (DELETE): http://127.0.0.1:8000/api/v1/posts/{post_id}/comments/{id}
- {post_id} - id публикации с комментариями
- {id} - id комментария
- Удалить комментарий может только автор комментария
Получение списка доступных сообществ. (GET): http://127.0.0.1:8000/api/v1/groups/
- Посмотреть сообщества может только авторизованный пользователь
Получение информации о сообществе по id. (GET): http://127.0.0.1:8000/api/v1/{id}/
- {id} - id группы
- Посмотреть информацию о сообществе может только авторизованный пользователь
Получение всеx подписок пользователя. (GET): http://127.0.0.1:8000/api/v1/follow/
- Возвращает все подписки пользователя, сделавшего запрос
- Анонимные запросы запрещены
Подписка пользователя. (POST): http://127.0.0.1:8000/api/v1/follow/
# Тело запроса
{
"following": "string"
}
- Подписка пользователя от имени которого сделан запрос на пользователя переданного в теле запроса
- Анонимные запросы запрещены
Получение JWT-токена. (POST): http://127.0.0.1:8000/api/v1/jwt/create/
# Тело запроса
{
"username": "string",
"password": "string"
}
Обновление JWT-токена. (POST): http://127.0.0.1:8000/api/v1/jwt/refresh/
# Тело запроса
{
"refresh": "string"
}
Проверка JWT-токена. (POST): http://127.0.0.1:8000/api/v1/jwt/verify/
# Тело запроса
{
"token": "string"
}
Богинский Дмитрий - python разработчик