An open API service indexing awesome lists of open source software.

https://github.com/destrolaric/keyvaluedatabaseservice

Service to work with IN-MEMORY H2 database, has TTL for all entries after which they are deleted.
https://github.com/destrolaric/keyvaluedatabaseservice

h2-database java spring

Last synced: about 2 months ago
JSON representation

Service to work with IN-MEMORY H2 database, has TTL for all entries after which they are deleted.

Awesome Lists containing this project

README

          

# Общие сведения по веб-приложению
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 - Класс с чётко обозначенной структурой для взаимодействия с базой.

## Как запустить.
Для запуска приложения необходимо скомпилировать его классы с помощью `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
```