• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cstj0505
V2EX  ›  程序员

通用 rest api 用 jsonql 是不是脱裤子放屁?

  •  
  •   cstj0505 · Jan 15, 2021 · 3780 views
    This topic created in 1958 days ago, the information mentioned may be changed or developed.

    首先说声抱歉,标题有点粗俗。

    restAPI 考虑通用性的时候,发现自定义表达式的话表达能力有限,后面需求变了可能又要改,然后就顺便想到了 jsonql 的方案,嗯,表达能力和 sql 一样强。

    但是,既然表达能力和 sql 一样,sql 更容易书写和阅读,为什么不直接把 sql 作为请求内容发过来。还要用 jsonql 转一道。

    我能想到的就这么点,不知道各位怎么看 restAPI 的通用接口?

    15 replies    2021-01-16 09:25:24 +08:00
    chendy
        1
    chendy  
       Jan 15, 2021
    既然把 sql 作为请求内容发过来,为什么不直接给用户用数据库…
    shakaraka
        2
    shakaraka  
    PRO
       Jan 15, 2021
    直接让前端操作数据库得了
    wangyanrui
        3
    wangyanrui  
       Jan 15, 2021 via Android
    既然把数据库给用户,为什么不直接安装到用户本地或者 Excel 增删改查😁
    d7sus4
        4
    d7sus4  
       Jan 15, 2021 via iPhone   ❤️ 1
    不要从一个极端走向另一个极端
    qwerthhusn
        5
    qwerthhusn  
       Jan 15, 2021
    一行 SELECT FULL JOIN 把你数据库搞挂
    一行 TRUNCATE/DROP SCHEMA 叫你进局子
    taogen
        6
    taogen  
       Jan 15, 2021 via Android
    接口不是只执行一条 SQL 。难道要解析 SQL 获取参数?
    cstj0505
        7
    cstj0505  
    OP
       Jan 15, 2021 via Android
    @d7sus4 你这个回复靠谱点,哈哈,我想所谓通用不就是表达式嘛,表达能力强
    yulon
        8
    yulon  
       Jan 15, 2021
    各种漏洞就是用奇怪的格式、奇怪的溢出来操作数据库,你直接把数据库暴露给前端,好家伙,别说 35 岁了,可能 25 岁就要被开除,永远不要让前端有 eval 后端的能力
    janxin
        9
    janxin  
       Jan 16, 2021 via iPhone
    不能用 graphql 吗
    KuroNekoFan
        10
    KuroNekoFan  
       Jan 16, 2021 via iPhone
    前后端分离的一个问题就是总有人不自觉把自己要做的事丢给另外一端
    cstj0505
        11
    cstj0505  
    OP
       Jan 16, 2021 via Android
    @janxin 嗯,是考虑这个,比 jsonql 成熟些
    KuroNekoFan
        12
    KuroNekoFan  
       Jan 16, 2021 via iPhone
    顺手搜了一下 jsonql,好像没多少用户啊,要考虑也是考虑 graphql 吧
    Rocketer
        13
    Rocketer  
       Jan 16, 2021 via iPhone
    jsonql 也好,graphql 也罢,都还不成气候,没有闲钱的公司不要急着上。这些东西都有可能像前段时间流行的“中台”一样,过段时间就被拆了。
    taowen
        14
    taowen  
       Jan 16, 2021
    https://zhuanlan.zhihu.com/p/335309652 如何让前端程序员没有后端也能完成项目? https://zhuanlan.zhihu.com/p/337185052 开个通用的 HTTP 接口,让前端写 SQL 咋样?
    flyingfz
        15
    flyingfz  
       Jan 16, 2021
    可以看看 postgrest ,基于 postgresql 数据库的。
    我们之前的方案 , 是写一个 中间件 , 把相关的请求 proxy 到 postgrest,然后在 这个中间件上做好权限控制。

    更进一步,完全可以自己把 postgrest 实现一遍, 工作量其实也不大 ,可以做到更细致的权限控制.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5347 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 05:49 · PVG 13:49 · LAX 22:49 · JFK 01:49
    ♥ Do have faith in what you're doing.