SerGeRybakov / OWM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Настройка и запуск проекта

coding: python 3.8.7 utf-8

  1. pip install -r requirements.txt
  2. pre-commit install
  3. запустить файл database/models.py
  4. uvicorn main:app --no-use-colors

Документация доступна после запуска по стандартным адресам FastAPI:

Стек:


Задание

  1. Реализовать API для регистрации пользователя: логин, пароль. Логин и пароль могут передаваться в открытом виде.
  2. Реализовать API для авторизации пользователя и получения временного токена. Логин и пароль могут передаваться в открытом виде
  3. Реализовать API для создания и удаления объектов у пользователя, а также получение списка объектов (для определения пользователя дополнительным параметром передается токен)
  4. Реализовать API для передачи объекта другому пользователю.

Работать это должно следующим образом:

  • передающий пользователь отправляет запрос с id объекта и логин пользователя, которому он передает этот объект;
  • в ответ он получает ссылку подтверждения, по которой должен перейти принимающий пользователь (и только он, принадлежность определяется по токену, который также передается дополнительным параметром);
  • при корректной обработке объект должен быть перепривязан от передающего пользователя к принимающему.

Спецификация для методов API

Формат для всех HTTP-запросов и ответов API: JSON

Регистрация пользователя

  • POST-запрос (/registration);
  • параметры запроса: логин, пароль пользователя;
  • параметры ответа: сообщение об успешной регистрации.

Авторизация пользователя

  • POST-запрос (/login);
  • параметра запроса: логин, пароль пользователя;
  • параметры ответа: временный токен аутентификации.

Создание объекта

  • POST-запрос (/items/new);
  • параметры запроса: временный токен, атрибуты объекта;
  • параметры ответа: сообщение об успешном создании объекта, id объекта, атрибуты объекта.

Удаление объекта

  • DELETE-запрос (/items/:id);
  • параметры запроса: временный токен, id объекта;
  • параметра ответа: сообщение об успешном удалении объекта.

Получение списка объектов

  • GET-запрос (/items);
  • параметры запроса: временный токен;
  • параметра ответа: список объектов пользователя с их id и атрибутами.

Генерация ссылки для передачи объекта

  • POST-запрос (/send);
  • параметры запроса: id передаваемого объекта, логин принимающего пользователя, временный токен;
  • параметры ответа: ссылка, по которой принимающий пользователь должен совершить переход.

Переход по ссылке для получения объекта

  • GET-запроса (/get)
  • параметры запроса: ссылка, сгенерированная в ответе метода send и временный токен принимающего пользователя, для проверки принадлежности;
  • параметры ответа: сообщение об успешном получении объекта.

About


Languages

Language:HTML 70.2%Language:Python 16.9%Language:JavaScript 8.6%Language:CSS 4.2%