Skip to content

vadikam100500/API_For_Sensei

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API_For_Sensei

  • Simple API on django by TOR of mentor.

What I used

  • django==2.2.6
  • djangorestframework
  • django_filters
  • requests

How to install

$ python3 -m venv 'name of virtual environment'
$ venv 'name of virtual environment'/Scripts(or bin for linux)/activate
$ pip install -r requirements.txt
$ python3 manage.py makemigrations
$ python3 manage.py migrate

Database

$ python3 manage.py database <Your url adress>

Task

Dataset: https://gist.github.com/artrey/8d6a3f2d91cefb5e6343bedbc9ef8c79

Вам необходимо разработать API сервис для выдачи информации из датасета выше. Клиент должен иметь возможность:

  1. Получать только запрошенные колонки
  2. Фильтровать данные по одной или нескольким колонкам: дате (from/to), магазинам, странам
  3. Группировать данные по одной или нескольким колонкам: датам, магазинам, странам
  4. Сортировать по любой из колонок

Если клиент не указывает, какие колонки необходимо отобразить, то требуется отобразить все колонки.

Не забываем про пагинацию.


Примеры запросов (ваши запросы могут отличаться, главное, чтобы они выполняли поставленную задачу):

  1. Показать сырые данные вида Date - Visitors - Earnings
api/v1/metrics/?show=date&show=visitors&show=earnings
  1. Показать сырые данные вида Date - Country - Visitors - Earnings за промежуток с 2021-03-20 по 2021-06-01
api/v1/metrics/?show=date&show=country&show=visitors&show=earnings&date_from=2021-03-20&date_to=2021-06-01
  1. Показать сгруппированные данные по странам, при этом отобразить Earnings и упорядочить по убыванию по Earnings
api/v1/metrics/?group=country&show=earnings&o=-earnings
  1. Показать сгруппированные данные по магазинам и странам и при этом отобразить Visitors
api/v1/metrics/?group=country&group=shop&show=visitors

Releases

No releases published

Packages

No packages published

Languages