/api_django_linker

API for DjangoLinker service. Built with Django, DRF.

Primary LanguagePython

API для DjangoLinker

Python Django Pytest Postman

Описание

API для DjangoLinker.

Функционал

  • Подписка и отписка от автора авторизованным пользователем;
  • Авторизованный пользователь может просматривать посты, создавать новые, удалять и изменять их;
  • Пользователь может просматривать список сообществ;
  • Пользователь может создавать, просматривать, удалять и обновлять комментарии;
  • Доступна фильтрация по подпискам.

Установка

  1. Клонировать репозиторий:

    git clone https://github.com/PrimeStr/api_django_linker.git
  2. Перейти в папку с проектом:

    cd django_linker_api/
  3. Установить виртуальное окружение для проекта:

    # для OS Linux и MacOS
    python3 -m venv venv
    
    # для OS Windows
    python -m venv venv
  4. Активировать виртуальное окружение для проекта:

    # *source* можно заменить на .
    
    # для OS Linux и MacOS
    source venv/bin/activate
    
    # для OS Windows
    source venv/Scripts/activate
  5. Установить зависимости:

    pip install -r requirements.txt
  6. Перейти в папку django_linker_api и выполнить миграции на уровне проекта:

    cd django_linker_api
    
    # для OS Linux и MacOS
     python3 manage.py migrate
    
     # для OS Windows
     python manage.py migrate
  7. Запустить проект локально:

    # для OS Linux и MacOS
     python3 manage.py runserver
    
    # для OS Windows
     python manage.py runserver

Примеры запросов

Для начала нужно зарегистрировать пользователя : Отправить POST-запрос на эндпоинт 'api/v1/users/' и передать в нём 2 поля:

  {
      "username": "Ваше_имя_пользователя",
      "password": "Ваш_пароль"
  }

Получение токена

: Отправить POST-запрос на эндпоинт 'api/v1/users/' и передать в нём 2 поля:

  {
      "username": "Ваше_имя_пользователя",
      "password": "Ваш_пароль"
  }

В ответе от API в поле"token"вы получите токен. Сохраните его.

Создание поста

: Отправить POST-запрос на эндпоинт api/v1/posts/ и передать в него обязательное поле text, в заголовке указать тот самый скопированный ранее токен:Authorization:Bearer <токен>.

  1. Пример запроса:

    {
      "text": "Это мой первый пост."
    }
  2. Пример ответа:

    {
      "id": 2,
      "author": "Ваше_имя_пользователя",
      "text": "Это мой первый пост.",
      "pub_date": "2023-06-4T12:00:22.021094Z",
      "image": null,
      "group": null
    }

Комментирование поста пользователя

: Отправить POST-запрос на эндпоинт api/v1/posts/{post_id}/comments/ и передать в него обязательные поля post(id поста) и text, в заголовке так же обязательно указать токен как в предыдущем примере.

  1. Пример запроса:

    {
      "post": 1,
      "text": "Это мой первый комментарий."
    }
  2. Пример ответа:

    {
      "id": 1,
      "author": "Ваше_имя_пользователя",
      "text": "Это мой первый комментарий.",
      "created": "2023-06-4T12:12:22.021094Z",
      "post": 1
    }

Ресурсы

# Документацию проекта вы можете найти по адресу:
    http://127.0.0.1:8000/redoc/
# Для доступа к документации проект должен быть запущен.
# Для создания и тестирования API использовался Postman:
    https://www.postman.com/
# Крайне рекомендую воспользоваться им.