• 写了一个 Libra 的客户端库 at 2019年10月23日

    最后更新是 4 年前,和最新的 sha3 标准不兼容。

  • 吐槽一下 PostgREST 的查询语法设计:

    1. 查询字段没有独立的名称空间,所以它的 limit/order/select 等关键字会和要查询的字段名冲突
    2. 查询类型没有独立的名称空间,查询类型和查询内容混合,比如 age=eq.13, 这里 eq 和 13 分别是查询类型和查询内容,所以 PostgREST 难以支持 or 查询
    3. 不支持单个对象的获取
    4. 支持按搜索条件批量删除,容易误操作
  • 目前 kaola 支持的 and/or 嵌套查询是这种的 比如

    s:{
        'f1,f2':v1,
        'f3':v2
    }
    

    表示 (f1=v1 or f2=v1) and (f3=v2), and/or 逻辑都是隐含的。如果要最外层用 or,也许更方便的是调用两次 api?

  • 实现不难,关键是要有一个好的查询表达规范,符合前端程序员的直觉。你能用嵌套的 json 合理表达出你的需求,就可以实现这个功能。说实话,我认为 PostgREST 的查询语法很丑陋。

  • 在目前几个内部项目中,kaola 都是配合其它 api 一起使用的。比如老白的供应链系统,需要对接京东/网易/顺丰等外部接口,这部分是一个独立部署的项目。

    所以 url 鉴权是在更高一层的网关实现的,基于 Netflix/zuul。而细粒度的权限控制,则每个项目都是自行实现的。

  • 权限确实是个麻烦的东西。 看了 PostgREST,它是直接利用数据库的角色进行权限控制,太死板。 目前还在构思一个优雅的内置解决方案。

  • 谢谢提醒,kaola 2016 技术分享 链接已修复

  • 测试的时候,mysql 和 oracle 都试过,没问题。其它 rails 支持的数据库,使用 kaola 应该问题也不大。 生产环境目前都是 mysql 数据库

  • 去年开始写 kaola 的时候还真不知道 PostgREST,看来也是一种趋势。 不过用 rails 实现的好处是多种数据库都支持。

  • RubyConf China 2015 资源汇总 at 2015年10月12日

    👍

热爱编程,好读书,不求甚解。