Простое 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