Skip to content

Instantly share code, notes, and snippets.

@eutkin
Created February 27, 2019 12:58
Show Gist options
  • Save eutkin/3eac085a8e44bf6ef594ea02cdb12d5f to your computer and use it in GitHub Desktop.
Save eutkin/3eac085a8e44bf6ef594ea02cdb12d5f to your computer and use it in GitHub Desktop.
Тестовое задание

Задание

Необходимо написать REST сервис для генерации отчетов.

Отчет должен отображать охват посетелей (измеряется в количестве человек) для каждого имеющегося сайта.

Выборка должна быть отсортирована по site_id.

Ожидаемый результат

[
  {
    "site_id" : 11,
    "reach" :  57
  },
  {
    "site_id" : 23,
    "reach" :  14
  },
  {
    "site_id" : 25,
    "reach" :  64
  },
  {
    "site_id" : 33,
    "reach" :  53
  }  
]

Источники данных:

База данных

Таблица reach:

holding_id site_id reach, %
2 23 4.35
1 11 7.56
  • holding_id - идентификатор холдинга
  • site_id - идентификатор сайта
  • reach - охват пользователей в %, вычисляемое по формуле:
(Количество посещений сайта / Количество посещений холдинга) * 100

Таблица holding_counter:

holding_id count
1 754
2 322

, где

  • holding_id - идентификатор холдинга
  • count - количество посещений холдинга

REST сервис

Получение данных:

GET http://demo1159352.mockable.io/api/reach

Ответ

[
  {
    "site" : 33,
    "reach" : 53
  },
  {
    "site" : 25,
    "reach" : 64
  }
]

, где

  • site - идентификатор сайта
  • reach - охват населения в людях.

Health check:

GET http://demo1159352.mockable.io/api/health

Ответ:

{
  "status" : "UP"
}

Ожидаемый стек технологий

  • Spring Boot 2
  • H2
  • Spring Web
  • Spring JDBC / Spring Data JPA

Остальные требования

Сервис должен быть готов к мониторингу - иметь health check'и (для базы и внешнего Rest сервиса). Использовать Spring Actuator 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment