Простой key-value API с функциями управления балансом.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Maxim Likhachev 745c18826e finex v0.1 1 year ago
dashboard finex v0.1 1 year ago
src finex v0.1 1 year ago
COPYING finex v0.1 1 year ago
README.md finex v0.1 1 year ago

README.md

Finex

Описание

Простейший сервис, предоставляющий API для обновления финансового (и любого другого) баланса по категориям. Информация о балансе экспортируется в виде метрик в формате Prometheus.

В репозитории представлены две версии:

Пример панели Grafana можно найти в файле dashboard/dashboard.json.

Лицензия

GNU General Public License Version 3.

Использование

Запуск

Для настройки сервиса можно использовать следующие переменные:

  • FINEX_HOST -- сетевой адрес (по умолчанию 127.0.0.1),
  • FINEX_PORT -- сетевой порт (по умолчанию 8000),
  • FINEX_DB -- путь до файла базы данных.

Racket-версию можно запустить через racket:

$ cd src/racket
$ FINEX_DB=/var/lib/finex/db racket ./finex.rkt

Haskell использует stack:

$ cd src/haskell
$ stack build
$ FINEX_DB=/var/lib/finex/db stack run

API

Доступные методы проиллюстрированы в следующем листинге:

$ curl -X GET localhost:3000/total
{"total":0}

$ curl -X POST localhost:3000/Income -d 5000
{"Income":5000}

$ curl -X POST localhost:3000/Income -d +300
{"Income":5300}

$ curl -X POST localhost:3000/Income -d -1000
{"Income":4300}

$ curl -X GET localhost:3000/Income
{"Income":4300}

$ curl -X GET localhost:3000/total
{"total":4300}

$ curl -X POST localhost:3000/Trading -d 400
{"Income":4300,"Trading":400}

$ curl -X GET localhost:3000/total
{"total":4300}

$ curl -X GET localhost:3000/metrics

finex_amount_debts{type="Income"} 4300
finex_amount_debts{type="Trading"} 400