V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
CasualYours
V2EX  ›  分享创造

各位有记账的需求吗,分享下我给 beancount 封装 API 的探索过程

  •  4
     
  •   CasualYours ·
    BaoXuebin · 2021-12-21 10:34:15 +08:00 · 3662 次点击
    这是一个创建于 1067 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我从去年开始使用 beancount 搭配 fava 来记账,总体效果不错,但也遇到了一些问题。

    上手难度大

    • 安装不方便。需要下载 python 以及通过 pip 去安装 beancount 和 fava
    • 使用难度大。因为 beancount 是基于文本的,所以其对记账内容的格式有严格要求
    • 灵活性。这其实算是 beancount 的优点,但对于刚接触的用户来说,怎么组织文件夹结构,怎么定义账户都是一个需要不断摸索和重构的过程

    便捷性不足

    • 缺乏对移动端的支持
    • 缺乏第三方账单导入

    作为一名后端开发,本能地想到 接口即服务。于是着手把 beancount 的使用抽象为 API 接口。

    beancount 提供了 bean-query 的命令,可以执行 BQL 语句(类似 SQL )输出结构化数据;我只需要把这些结构化的数据解析成 JSON 返回即可。于是我用 NodeJS 快速验证了这个想法( Github 地址:beancount-node-server)。

    Node 虽然开发起来很便捷,但是它给使用者新增了强依赖(用户想要记账需要同时在电脑配置 Python 和 Node ),本着 如无必要,勿增实体 的原则,我又把这个项目用 Go 重构了一遍,在支持多平台的基础上,而无需新增依赖。

    同时我也开发了一个前端界面(勉强兼容移动端)和对 docker 的支持。

    demo

    最终成品如下:beancount-gs 在线体验

    使用文档-完善中
    API Github 地址:beancount-gs
    前端 Github 地址:beancount-web

    上面这些就是我对 beancount API 化的探索,如果大家对这个项目有兴趣,欢迎保持关注。

    Love the world.

    16 条回复    2022-04-21 17:29:30 +08:00
    wb129945130
        1
    wb129945130  
       2021-12-21 13:08:09 +08:00
    看起来不错
    MCVector
        2
    MCVector  
       2021-12-21 13:22:55 +08:00
    不错呀,我一般一个月通过银行流水导入一次,使用 beancount-import. 需要手动记录的状况一般就只有现金了。
    ddllzz
        3
    ddllzz  
       2021-12-21 13:31:08 +08:00 via Android
    👍
    Nasei
        4
    Nasei  
       2021-12-21 13:40:08 +08:00
    支持一个, 我也用 beancount

    但是我用了一下这个网页,感觉图形界面拿来看统计就好了,用来输入反而麻烦

    我觉得 beancount 的用户应该主要是程序员吧,所以你说的那些问题其实都不是什么问题
    CasualYours
        5
    CasualYours  
    OP
       2021-12-21 14:25:14 +08:00
    @wb129945130
    @MCVector
    @ddllzz
    感谢支持 ~
    CasualYours
        6
    CasualYours  
    OP
       2021-12-21 14:28:34 +08:00
    > beancount 的用户应该主要是程序员吧

    @Nasei 我之前也是这个想法,但在写过一篇 beancount 的介绍文章后,也经常收到一些非程序员的邮件沟通。beancount 对于大多数人上手门槛还是太高的。
    d873139022
        7
    d873139022  
       2021-12-21 15:06:37 +08:00
    悄咪咪嫖了一眼,感觉跟记账 app 的记账方式基本完全不一样,哈哈哈
    ybnsjl
        8
    ybnsjl  
       2021-12-21 15:17:05 +08:00
    界面挺漂亮的。害,我都是每次消费完,人工手动纯文本记录的
    7gugu
        9
    7gugu  
       2021-12-21 15:54:49 +08:00
    看起来不错👍。最近在尝试使用"Pixiu 记账"这个 App ,年度订阅制,支持在 Mac 和 iPhone 上记账,感觉楼主也可以试试看,恰好可以满足你要的导入第三方账单的需求。不过这个 App 貌似是不支持 API 接入的,这个可能是弊端。(不是广告,单纯就是推荐😂)
    CasualYours
        10
    CasualYours  
    OP
       2021-12-21 17:58:54 +08:00
    @d873139022 记账 app 一般只专注记录收入和支出,操作也会更简单,各有优劣吧
    @ybnsjl beancount 用习惯了,还是文本操作最舒服
    @7gugu 感谢推荐,"记账 app" 我电脑上安装的有哈,功能非常丰富,也是很赞的作品。
    CasualYours
        11
    CasualYours  
    OP
       2021-12-21 18:00:01 +08:00
    @CasualYours 手误:"记账 app" -> "Pixiu 记账"
    guyskk0x0
        12
    guyskk0x0  
       2021-12-21 21:44:04 +08:00
    支持👍,我是每个月用 beancount 记账&对账一次
    lklzm
        13
    lklzm  
       2021-12-24 14:52:40 +08:00
    我觉得早就该出现的东西总算出现了,支持支持
    xiaowzp
        14
    xiaowzp  
       2022-02-24 13:50:09 +08:00
    界面很漂亮,已经用上,感谢 ⭐
    peerless
        15
    peerless  
       2022-04-19 13:39:42 +08:00 via iPhone
    反馈个问题,群晖是 arm 架构的,貌似不支持这个
    CasualYours
        16
    CasualYours  
    OP
       2022-04-21 17:29:30 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:22 · PVG 05:22 · LAX 13:22 · JFK 16:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.