Rest веб-приложение предназначенное для обработки запросов пользователя и для работы с in-memory базой с TTL для каждой записи.
- Java 11
- Spring MVC
- Database H2(IN-MEMORY)
- Архитектура
- Controller - отвечает за получение запросов пользователей и дальнейшую отправку результата. Имеет следующие Endpoints
- get - Get запрос, требует ключ, выводит content по ключу, в случае отсутствия записи выдаёт метку.
- set - Post запрос, требует ключ, content также возможно указание ttl записи(в случае если не указано принимается время жизни в 100 секунд)
- remove - Delete запрос, требует ключ записи, удаляет запись, иначе возвращает код об отсутствии записи.
- dump - Patch запрос, сохраняет текущие записи в таблице в dump.json файл.
- load - Patch запрос, загружает данные из файла в базу.
- Service - отвечает за работу с repository классами, принимает запрос от контроллера, переводя их в соответствующие запросы к классам.
- DumpFileRepository - отвечает за создание, изменение, загрузку с файла дампа.
- TimedKeyValueRepository - отвечает за работу непосредственно с базой данных.
- CleanerDao - отвечает за периодическую очистку устаревших данных. Стартует при запуске программы.
- Exceptions - отвечают за обработку/вывод исключений.
- model - Класс с чётко обозначенной структурой для взаимодействия с базой.
- Controller - отвечает за получение запросов пользователей и дальнейшую отправку результата. Имеет следующие Endpoints
Для запуска приложения необходимо скомпилировать его классы с помощью mvn compile
, в случае, если мы хотим получить Jar файл, необходимо использовать mvn package
. При использовании jar файла достаточно простого запуска. Файл соберётся и запустит сервер на порту 8080.
GET http://localhost:8080/get?key=dadaada
POST http://localhost:8080/set?key=test&data=test&ttl=100
POST http://localhost:8080/set?key=dadaadas1121&data=dssds22&ttl=104
PATCH http://localhost:8080/dump
PATCH http://localhost:8080/load