Веб-сервис на базе django, предоставляющий REST-api.
Принимать из POST-запроса .csv файлы для дальнейшей обработки;
Обрабатывать типовые deals.csv файлы, содержащие истории сделок;
Сохранять извлеченные из файла данные в БД проекта;
Возвращать обработанные данные в ответе на GET-запрос.
Данные хранятся в реляционной БД, взаимодействие с ней осуществляется посредством django ORM.
Ранее загруженные версии файла deals.csv не влияют на результат обработки новых.
Метод: GET
В ответе содержится поле “response” со списком из 5 клиентов, потративших наибольшую сумму за весь период.
Каждый клиент описывается следующими полями:
username - логин клиента;
spent_money - сумма потраченных средств за весь период;
gems - список из названий камней, которые купил клиент.
Метод: POST
Аргументы:
deals: файл, содержащий историю сделок.
Ответ:
Status: OK - файл был обработан без ошибок;
Status: Error, Desc: <Описание ошибки> - в процессе обработки файла произошла ошибка.
Отправка данных и получение данных доступно только для авторизованных пользователей.
Аутентификация осуществляется по токену для пользователей, которые есть в БД приложения.
Получение токена (метод POST) - http://127.0.0.1:8000/api/auth/
Logout (метод GET) - http://127.0.0.1:8000/api/logout/