Документация не обновлялась и в ней нет описания некоторых ручек
- Установить все зависимости из списка ниже (предпочтительно в виртуальном окружении)
- Запустить
gen.py
. При желании можно изменить количество генерируемых данных, поменявratio
в последней строчке - Запустить
uvicorn main:app --reload --worker 1
для старта сервера - Теперь 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 | Дата в неверном формате |
Запрос:
/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 | Сессия пользователя не найдена |
После запуска сервера можно протестировать запросы