Простой 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 11 months ago
dashboard finex v0.1 11 months ago
src finex v0.1 11 months ago
COPYING finex v0.1 11 months ago
README.md finex v0.1 11 months 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