Skip to content

Веб-сервис на базе django, предоставляющий REST-api

Notifications You must be signed in to change notification settings

idemintsev/api_service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Веб-сервис на базе django, предоставляющий REST-api.

Сервис способен:

  • Принимать из POST-запроса .csv файлы для дальнейшей обработки;
  • Обрабатывать типовые deals.csv файлы, содержащие истории сделок;
  • Сохранять извлеченные из файла данные в БД проекта;
  • Возвращать обработанные данные в ответе на GET-запрос.
  • Требования:

  • Данные хранятся в реляционной БД, взаимодействие с ней осуществляется посредством django ORM.
  • Ранее загруженные версии файла deals.csv не влияют на результат обработки новых.
  • Спецификация эндпоинтов:

    Выдача обработанных данных - http://127.0.0.1:8000/api/deals/

    Метод: GET

    В ответе содержится поле “response” со списком из 5 клиентов, потративших наибольшую сумму за весь период.

    Каждый клиент описывается следующими полями:

  • username - логин клиента;
  • spent_money - сумма потраченных средств за весь период;
  • gems - список из названий камней, которые купил клиент.
  • Загрузка файла для обработки - http://127.0.0.1:8000/api/deals/

    Метод: 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/

    About

    Веб-сервис на базе django, предоставляющий REST-api

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published