Тестовое задание Java
Требуется реализовать REST-сервис по сбору статистики посещаемости WEB-сайта.
Сборка
Команда gradle bootJar соберет приложение Spring Boot в jar.
Собранный файл будет располагаться в build/libs
Запуск
Для запуска нужна СУБД Mongo. Для настройки подключения нужно отредактировать файл application.yml, указать хост, порт, имя базы данных в соотвествующих полях.
Запустить можно командой gradle bootRun.
Или можно запустить собранный jar командой java -jar digitalzone-0.0.1-SNAPSHOT.jar. Отредактированный файл application.yml расположить рядом с jar.
Тестирование
Приложение имеет API c двумя endpoint:
POST /event :
Добавляет новое посещение страницы пользователем.
В теле сообщения нужно передать json создаваемоего объекта:
{
"userUUID": "d8898714-37ad-4327-a34b-faf7b3f87461", // ид пользователя
"pageUUID": "5218de4f-3f96-49d6-9ba7-d6f47c49d3e0" // ид страницы
}
Ответом будет статистика за день:
{
"amountAllVisits": 1, // количество визитов за день
"amountUniqueUser": 1 // количество уникальных пользователей за день
}
GET /event :
Возвращает отчет за период
В параметрах запроса нужно передать
begin
- дата в формате dd.MM.yyyy (02.10.2018), начало периода включительно
end
- дата в формате dd.MM.yyyy (02.10.2018), окончание периода не включительно
Ответом будет статистика за день:
{
"amountAllVisits": 1, // количество визитов
"amountUniqueUser": 1 // количество уникальных пользователей
"amountRegularUser": 1 // количество постоянных пользователей
}