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.
- Host: GitHub
- URL: https://github.com/destrolaric/keyvaluedatabaseservice
- Owner: Destrolaric
- Created: 2021-10-01T14:31:56.000Z (over 4 years ago)
- Default Branch: dev
- Last Pushed: 2022-02-24T15:56:31.000Z (over 4 years ago)
- Last Synced: 2025-04-05T23:29:22.932Z (about 1 year ago)
- Topics: h2-database, java, spring
- Language: Java
- Homepage:
- Size: 65.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
```