V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lowbug
V2EX  ›  程序员

有个 idea, API 转发计费,请教下有没有这样的类似开源系统。

  •  
  •   lowbug · 2021-05-25 18:30:26 +08:00 · 1704 次点击
    这是一个创建于 1311 天前的主题,其中的信息可能已经有所发展或是发生改变。
    客户 A 请求我的 api,比如 a=1&b=2,通过整理字段改成 aa=1&bb=2 转发给后端 api 服务器,后端 api 服务器返回 json 不是标准 msg data code 格式,需要解析转化成 code:200,data:xxxx,msg:xxx 回复给客户 A 。并完成客户 A 的消耗计次计费。

    整理规则可能高端了点,API 转发+计费不知道有没有?

    不知道有没有人见过跟这种需求类似的开源系统,前人肩膀上再二开优化下~感谢
    9 条回复    2021-05-27 11:05:53 +08:00
    AoEiuV020
        1
    AoEiuV020  
       2021-05-26 10:58:47 +08:00
    安全是个问题,转发系统闭源的话,至少我不敢用,
    lyz1990
        2
    lyz1990  
       2021-05-26 11:34:25 +08:00
    不太能理解这个需求
    lowbug
        3
    lowbug  
    OP
       2021-05-26 12:49:02 +08:00
    @AoEiuV020 目前 github 找 API Gateway 开源项目都不满足,不知道是不是找错方向了
    2020beBetter
        4
    2020beBetter  
       2021-05-26 12:57:41 +08:00
    开源没有 商业化的倒是好几个
    以前跟一个大集团对接 他们用的是这个。
    https://www.baishan.com/tech/p-orchsym/
    lowbug
        5
    lowbug  
    OP
       2021-05-26 13:08:12 +08:00
    @2020beBetter 小规模自用,整体类似 /t/778541 这个帖子里的 gugudata 点 com 提供的数据中台服务
    @lyz1990
    LukeChien
        6
    LukeChien  
       2021-05-26 17:03:29 +08:00
    找个开源的 serverless 引擎,每个接口建个函数,可以统计请求计费。你的需求函数代码完全可以自动生成。
    myCupOfTea
        7
    myCupOfTea  
       2021-05-27 09:32:56 +08:00
    @lowbug 稍微改造一下不难的,不过一般 API Gateway 也不会解析 body,解析 body 降低性能太多了
    myCupOfTea
        8
    myCupOfTea  
       2021-05-27 09:33:24 +08:00
    比如用 spring-boot-gateway 改造这种东西挺简单的
    xkeyideal
        9
    xkeyideal  
       2021-05-27 11:05:53 +08:00
    需求很简单,实现超级复杂,一般的 API Gateway 基本不可能支持,因为需要改 body,这就涉及到了劫持用户包,对 http 协议进行解析,基于百度开源的 BFE 源码进行修改,开源项目 openresty 自己写 lua 插件搞,两条路子保证都能走通,但工作量都超级大。
    简单的办法就是针对需求单独写一个 http proxy,根据特定需求来做
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1758 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:30 · PVG 00:30 · LAX 08:30 · JFK 11:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.