Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Key-value хранилище на базе tarantool

License

tupikinm/storage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Storage

Описание

Простое key-value хранилище, реализованное с помощью tarantool

Требования

Установленные tarantool + tarantool http

Запуск

tarantool storage.lua

Конфигурация

Http-сервер будет запущен с настройками подключения, указанными в config.lua. По умолчанию localhost:8081. Так же можно указать максимальное количество запросов в секунду, по умолчанию 10.

Запросы

Сервер отвечает объектом, содержащим следующие поля:

  • string version - версия API
  • unixstamp time - время генерации ответа
  • boolean status - результат выполнение: true при успешном выполнение, false в случае ошибки. (Дублируется в заголовке x-api-status)
  • string data - сообщение о результате выполнения в случае успеха
  • string error - сообщение об ошибке
  • integer id - идентификатор записи в хранилище, по которому произведена попытка выполнения запроса

Существующие ограничения

Идентификатор записи id присваивается автоматически с помощью автоинкрементной последовательности, имеет тип integer. Поле key должно быть уникальным. Полу value представляет из себя ассоциативный массив значений произвольной структуры.

  • Вставка значения

Путь: /kv

Тело: {key: string, value: object}

curl --location --request POST 'http://localhost:8081/kv' \
--header 'Content-Type: application/json' \
--data-raw '{
    "key": "person",
    "value": {"name":"bob","age":32}"
}'
  • Получение значения

Путь: /kv/:id

Тело: Игнорируется

Результат: содержимое кортежа в поле data

curl --location --request GET 'http://localhost:8081/kv/1' \
--header 'Content-Type: application/json'
  • Редактирование значения

Путь: /kv/:id

Тело: {value: object}

curl --location --request PUT 'http://localhost:8081/kv' \
--header 'Content-Type: application/json' \
--data-raw '{
    "value": {"name":"alice","age":33}"
}'
  • Удаление значения

Путь: /kv/:id

Тело: Игнорируется

curl --location --request DELETE 'http://localhost:8081/kv/1' \
--header 'Content-Type: application/json'

Пример

Файл client.lua содержит пример выполнения запросов с помощью tarantool http.client

About

Key-value хранилище на базе tarantool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages