Git Product home page Git Product logo

keyvaluedatabaseservice's Introduction

Общие сведения по веб-приложению

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.