Приложение считывает все данные из соответствующих CSV-файлов (разделитель – запятая) при старте приложения.
Приложение записывает все данные из оперативной памяти в CSV-файлы при завершении работы приложения.
Во время работы приложения ему запрещено взаимодействовать с файловой системой в другие моменты времени.
Имя файла с исходными данными передаётся приложению с ключом --templates-file
Id,SideA,SideB,SideC
4ae25b32-d794-4560-8a08-5e6d09a19c33,1,2,5
22f9f6c1-82af-4681-b92e-a3510ecee4b5,2,3,5
0c96ea19-fa65-499a-80ad-ea0c86b2a5e0,2,3,4
Имя файла с исходными данными передаётся приложению с ключом --triangles-file
Id,Template,RegistrationDateTime,BorderColor,FillColor,Description
66ade672-2301-4408-9471-8a17aa883d65,4ae25b32-d794-4560-8a08-5e6d09a19c33,2024-08-26T19:01:41.114511727,GREEN,RED,"странные данные, это неправильный треугольник"
a6be5e23-b8d4-4d78-8aa3-1c204d0befc8,22f9f6c1-82af-4681-b92e-a3510ecee4b5,2024-07-10T17:26:41.129567382,RED,GREEN,"точки расположены на отрезке"
baa30333-23d6-4eba-a8ed-7c235adf4228,0c96ea19-fa65-499a-80ad-ea0c86b2a5e0,2024-07-27T00:10:41.129642513,RED,GREEN,"обычный треугольник"
Приложение запускается с помощью системы сборки Gradle, обязательные параметры:
--templates-file
– имя файла со списком шаблонов;--triangles-file
– имя файла со списком треугольников;--port
– порт, по которому доступен веб-сервер. ./gradlew run --args="--templates-file ../sample-data/templates.csv --triangles-file ../sample-data/triangles.csv --port 9000"
Веб-сервер запускается и работает только при получении корректных значений всех параметров. При некорректном значении хотя бы одного параметра приложение выводит соответствующее сообщение об ошибке и завершает работу с ненулевым кодом возврата.
Error: missing option --triangles-file
Error: file not found «abc.csv»
Список упорядочен по возрастанию даты и времени регистрации и id.
page | integer >= 1 Default: 1 Example: page=1 Номер страницы. Если номер превышает максимально возможный, приложение возвращает пустой список. Если номер передан и не является натуральным числом, приложение возвращает сообщение об ошибке. |
records-per-page | integer Default: 10 Enum: 5 10 20 50 Example: records-per-page=10 Количество записей на странице. Если количество передано и не входит в указанный набор значений, приложение возвращает сообщение об ошибке. |
[- {
- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Description": "обыкновенный треугольник",
- "RegistrationDateTime": "2024-01-01T00:00:00"
}
]
Создание нового треугольника.
Дата и время регистрации в системе устанавливаются автоматически по текущей дате и времени, если не переданы.
Идентификатор треугольника генерируется уникальным.
Template required | string <UUID> Шаблон треугольника (соответствует |
RegistrationDateTime | string <date-time> Default: "текущая дата и время" Дата и время регистрации в системе |
BorderColor required | string Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет границы из списка цветов |
FillColor required | string Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет заливки из списка цветов |
Description required | string Описание треугольника |
{- "Template": "4ae25b32-d794-4560-8a08-5e6d09a19c33",
- "RegistrationDateTime": "2024-01-01T00:00:00",
- "BorderColor": "BLACK",
- "FillColor": "BLACK",
- "Description": "обыкновенный треугольник"
}
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49"
}
Получение информации о треугольнике по идентификатору треугольника
triangle-id required | string <UUID> Example: de42a00f-7f43-4d10-808d-bee47fdeef49 идентификатор треугольника |
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Template": "4ae25b32-d794-4560-8a08-5e6d09a19c33",
- "SideA": 3,
- "SideB": 4,
- "SideC": 5,
- "RegistrationDateTime": "2024-01-01T00:00:00",
- "BorderColor": "BLACK",
- "FillColor": "BLACK",
- "Description": "обыкновенный треугольник",
- "Area": 6,
- "Type": "прямоугольный"
}
Удаление треугольника по идентификатору
triangle-id required | string <UUID> Example: de42a00f-7f43-4d10-808d-bee47fdeef49 идентификатор треугольника |
{- "Error": "Некорректный идентификатор треугольника. Для параметра triangle-id ожидается UUID, но получено значение «id»"
}
Получение списка треугольников, отфильтрованного по цвету границы.
Список упорядочен по возрастанию даты и времени регистрации и id.
border-color required | string Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Example: border-color=BLACK Цвет границы треугольника |
page | integer >= 1 Default: 1 Example: page=1 Номер страницы. Если номер превышает максимально возможный, приложение возвращает пустой список. Если номер передан и не является натуральным числом, приложение возвращает сообщение об ошибке. |
records-per-page | integer Default: 10 Enum: 5 10 20 50 Example: records-per-page=10 Количество записей на странице. Если количество передано и не входит в указанный набор значений, приложение возвращает сообщение об ошибке. |
[- {
- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "SideA": 3,
- "SideB": 4,
- "SideC": 5
}
]
Получение списка треугольников, отфильтрованного по площади.
Обязательно должен быть передан хотя бы один из параметров.
Список упорядочен по возрастанию даты и времени регистрации и id.
area-min | number <double> Example: area-min=0.0 нижняя граница площади (включительно) |
area-max | number <double> Example: area-max=6.0 верхняя граница площади (включительно) |
page | integer >= 1 Default: 1 Example: page=1 Номер страницы. Если номер превышает максимально возможный, приложение возвращает пустой список. Если номер передан и не является натуральным числом, приложение возвращает сообщение об ошибке. |
records-per-page | integer Default: 10 Enum: 5 10 20 50 Example: records-per-page=10 Количество записей на странице. Если количество передано и не входит в указанный набор значений, приложение возвращает сообщение об ошибке. |
[- {
- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "SideA": 3,
- "SideB": 4,
- "SideC": 5
}
]
Получение статистической информации для набора треугольников.
В выдаче присутствуют только те цвета и типы треугольника, которые есть в списке данных.
Списки упорядочены лексикографически по возрастанию значения поля color
или type
соответственно.
by required | any Enum: "color" "type" "color,type" Example: by=color,type Тип запрашиваемой статистики.
|
[ ]
Создание нового треугольника по шаблону
Дата и время регистрации в системе устанавливаются автоматически по текущей дате и времени, если не переданы.
template-id required | string <UUID> Example: 4ae25b32-d794-4560-8a08-5e6d09a19c33 идентификатор шаблона |
RegistrationDateTime | string <date-time> Default: "текущая дата и время" Дата и время регистрации в системе |
BorderColor required | string Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет границы из списка цветов |
FillColor required | string Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет заливки из списка цветов |
Description required | string Описание треугольника |
{- "RegistrationDateTime": "2024-01-01T00:00:00",
- "BorderColor": "BLACK",
- "FillColor": "BLACK",
- "Description": "обыкновенный треугольник"
}
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49"
}
Создание нового шаблона.
Идентификатор шаблона генерируется уникальным.
SideA required | integer >= 1 Длина первой стороны (натуральное число) |
SideB required | integer >= 1 Длина второй стороны (натуральное число) |
SideC required | integer >= 1 Длина третьей стороны (натуральное число) |
{- "SideA": 3,
- "SideB": 4,
- "SideC": 5
}
{- "Id": "4ae25b32-d794-4560-8a08-5e6d09a19c33"
}
Получение информации о шаблоне по идентификатору
template-id required | string <UUID> Example: 4ae25b32-d794-4560-8a08-5e6d09a19c33 идентификатор шаблона |
{- "Id": "4ae25b32-d794-4560-8a08-5e6d09a19c33",
- "SideA": 3,
- "SideB": 4,
- "SideC": 5,
- "Area": 6,
- "Type": "прямоугольный"
}
Список редактируемых полей.
SideA required | integer >= 1 Длина первой стороны (натуральное число) |
SideB required | integer >= 1 Длина второй стороны (натуральное число) |
SideC required | integer >= 1 Длина третьей стороны (натуральное число) |
{- "SideA": 3,
- "SideB": 4,
- "SideC": 5
}
{- "Value": "{",
- "Error": "Missing a name for object member."
}
Создание нового треугольника по шаблону
Дата и время регистрации в системе устанавливаются автоматически по текущей дате и времени, если не переданы.
template-id required | string <UUID> Example: 4ae25b32-d794-4560-8a08-5e6d09a19c33 идентификатор шаблона |
RegistrationDateTime | string <date-time> Default: "текущая дата и время" Дата и время регистрации в системе |
BorderColor required | string Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет границы из списка цветов |
FillColor required | string Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет заливки из списка цветов |
Description required | string Описание треугольника |
{- "RegistrationDateTime": "2024-01-01T00:00:00",
- "BorderColor": "BLACK",
- "FillColor": "BLACK",
- "Description": "обыкновенный треугольник"
}
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49"
}
Id | string <UUID> Уникальный идентификатор шаблона треугольника |
SideA | integer >= 1 Длина первой стороны (натуральное число) |
SideB | integer >= 1 Длина второй стороны (натуральное число) |
SideC | integer >= 1 Длина третьей стороны (натуральное число) |
Area | number or null (Площадь треугольника) Вычисляемое поле, отсутствует в файле с данными. |
Type | string (Тип треугольника) Enum: "некорректный" "отрезок" "остроугольный" "прямоугольный" "тупоугольный" Вычисляемое поле, отсутствует в файле с данными
|
{- "Id": "4ae25b32-d794-4560-8a08-5e6d09a19c33",
- "SideA": 3,
- "SideB": 4,
- "SideC": 5,
- "Area": 6,
- "Type": "прямоугольный"
}
Id | string <UUID> Уникальный идентификатор треугольника |
Template | string <UUID> Шаблон треугольника (соответствует |
RegistrationDateTime | string <date-time> Дата и время регистрации в системе |
BorderColor | string (Color) Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет границы из списка цветов |
FillColor | string (Color) Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет заливки из списка цветов |
Description | string Описание треугольника |
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Template": "4ae25b32-d794-4560-8a08-5e6d09a19c33",
- "RegistrationDateTime": "2024-01-01T00:00:00",
- "BorderColor": "BLACK",
- "FillColor": "BLACK",
- "Description": "обыкновенный треугольник"
}