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.
|
5 months ago | |
---|---|---|
dashboard | 5 months ago | |
src | 5 months ago | |
COPYING | 5 months ago | |
README.md | 5 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