Skip to content

Binar-code/AssignlyAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AssinglyAPI

ВНИМАНИЕ

Документация не обновлялась и в ней нет описания некоторых ручек

Быстрый старт

  1. Установить все зависимости из списка ниже (предпочтительно в виртуальном окружении)
  2. Запустить gen.py. При желании можно изменить количество генерируемых данных, поменяв ratio в последней строчке
  3. Запустить uvicorn main:app --reload --worker 1 для старта сервера
  4. Теперь API запущено на вашем localhost

Зависимости

  • FastAPI

    pip install fastapi

  • SQLAlchemy

    pip install sqlalchemy

  • Unicorn

    pip install unicorn

    pip install "uvicorn[standard]"

  • Faker

    pip install faker

  • Multipart pip install python-multipart

Основные запросы

То, что выделено большими буквами - параметры запроса

Все ответы в формате JSON

Авторизация

Авторизация пользователя на сервере при помощи уникального токена который хранится на протяжении всей сессии

Запрос:

/login/?login=LOGIN&password=PASSWORD

Ответ:

{
    "id": user_id, - id пользователя 
    "token": auth_token - токен авторизации
}

Ошибки:

Сообщение Код ошибки Описание
User not found 404 Пользователь не найден
Incorrect password 400 Неверный пароль

Список групп пользователя

Возвращает список групп пользователя по токену авторизации

Запрос:

/groups/?token=TOKEN

Ответ:

{
    "id": group_id, - id группы
    "name": "", - название
    "description": "", - описание
    "image": "", - аватарка
    "owner_id": owner_id, - владелец 
    "members": - список участников группы
    [
        {
            "id": user_id, - id участника группы
            "login": "", - логин участника группы
            "tag": "" - тег участника группы
            'profile_image': "" - аватарка
        }
    ]
}

Ошибки

Сообщение Код ошибки Описание
unauthorized 401 Пользователь не авторизован (токен не найден)

Задачи в группе

Список всех задач в группе

Запрос:

/tasks?token=TOKEN&group_id=ID&limit=LIMIT&offset=OFFSET

Ответ:

{
    "id": task_id, - id задачи
    "group_id": group_id, - id группы, которой принадлежит задача
    "owner_id": owner_id, - id создателя задачи
    "name": "", - название
    "summary": "", - краткое описание
    "description": "", - полное описание
    "deadline": "", - срок задачи
    "status": status, - статус задачи
    "members": 
    [
        {
            "id": user_id, - id на кого повешена задача
            "login": "", - логин
            "tag": "", - тег
            "profile_image": "" - аватар
        }
    ]
}

Ошибки

Сообщение Код ошибки Описание
unauthorized 401 Пользователь не авторизован (токен не найден)

Добавление пользователя (регистрация)

ВНИМАНИЕ: валидация пароля лежит на вызывающей стороне

Запрос:

/signup?login=LOGIN&tag=TAG&password=PASSWORD&img=IMG

Ответ:

{
    "message": "User added successfully"
}

Ошибки

Сообщение Код ошибки Описание
User already exist 409 Пользователь уже существует

Добавление задачи

Добавить задачу в одну из групп пользователя

members - id пользователей, к которым прикреплена задача

Формат для передачи даты: DD.MM.YY H:M

Запрос:

/add_task?group_id=ID&owner_id=ID&name=NAME&description=DECRIPTION&summary=SUMMARY&deadline=DATE&status=STATUS&members=1&members=2

Ответ:

{
    "message": "task added successfully"
}

Ошибки:

Сообщение Код ошибки Описание
Task already exist 400 Задача с таким названием уже существует
Invalid date 400 Дата в неверном формате

Получение пользователя по id

Запрос:

/user_by_id?id=ID

Ответ:

{
    "id": id, - id пользователя
    "login": "", - логин пользователя
    "tag": "", - тег пользователя
    'profile_image': "" - аватар
}

Ошибки:

Сообщение Код ошибки Описание
User not found 404 Пользователь не найден

Получение всех пользователей

Вызов:

/users

Ответ: совпадает с выводом одного пользователя по id

Выход

Запрос:

logout?token=TOKEN

Ответ:

{
    "message": "logout successfully"
}

Ошибки:

Сообщение Код ошибки Описание
Token not found 404 Сессия пользователя не найдена

Коллекция в Postman

https://www.postman.com/research-operator-5471098/workspace/assignlyapi/collection/40122979-dc7cdcb4-5442-41d3-95f4-9f62ad967a27?action=share&creator=40122979

После запуска сервера можно протестировать запросы

About

AssinglyAPI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages