通用 rest api 用 jsonql 是不是脱裤子放屁? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cstj0505
V2EX    程序员

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

  •  
  •   cstj0505 2021-01-15 18:01:16 +08:00 3472 次点击
    这是一个创建于 1780 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    更进一步,完全可以自己把 postgrest 实现一遍, 工作量其实也不大 ,可以做到更细致的权限控制.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     869 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 19:16 PVG 03:16 LAX 11:16 JFK 14:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86