kvstore

Приложение реализует функционал тестового задания.

Quick Start

  1. Переход в папку приложения командой cd "...."
  2. Запуск приложения командой iex -S mix. В случае успешного запуска видим информацию логгера
    time [info] Started application
  3. Команда D_apl.write_database добавит в пустую таблицу 3 тестовые строки. В случае успешного выполнения возвращается кортеж
    }
  4. Контролировать содержание таблицы крайне удобно с помощью observer-а. Запуск командой :observer.start вкладка Table Viewer, в меню View выбрать Mnesia Tables.
  5. Отображается таблица kvs. В таблице в качестве ключевого поля используется поле key.
  6. Для проверки добавления информации в таблицу в окне терминала в корневом каталоге используем команду:
    curl -X POST -F 'key=zxc' -F 'ttl=12' -F 'data=Jazz' http://localhost:8080/upload
    В случае успешного выполнения в терминал возвращается сообщение
    Upload complete
    Результат можно проконтролировать в приложении Observer.
  7. Для проверки корректной работы запроса на отображение информации используем команду
    curl -X GET -F 'key=abc' http://localhost:8080/abc
    В первом терминале можно наблюдать сообщения логгера вида:
         **time [info] Начинаем отсчет ttl секунд**    
         **time [info] Отсчет закончен**  
         **time [info] Запись по ключу key успешно удалена через ttl секунд**  
         Результат можно проконтролировать в приложении Observer.
  8. Изменить существующую запись можно во втором терминале командой вида
    curl -X PUT -F 'key=abc' -F 'data=777' -F 'ttl=7' http://localhost:8080/changes
    Команда изменит значение в столбцах data и ttl строки с ключевым полем соответствующим key. В случае успешного выполнения в терминал возвращается сообщение:
    changes complete
    Можно изменять произвольное количество столбцов на выбор пользователя за одну команду, столбец key - ключевой столбец остается неизменным. Результат можно проконтролировать в приложении Observer.
  9. Применение во втором терминале команды вида
    curl -X DELETE -F 'key=abc' http://localhost:8080/delete
    приведет к немедленному удалению записи. В случае успешного выполнения в терминал возвращается сообщение:
    delete complete
    Результат можно проконтролировать в приложении Observer.
  10. Возможна работа с приложением без использования веб-сервера с помощью функций:
    D_apl.zapros(key)
    D_apl.create_mnesia - используется для формирования схемы БД.(в репозитории схема уже есть) D_apl.start_database
    D_apl.write_database
    D_apl.add_to_database

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/serv.