V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
john990
V2EX  ›  程序员

有没有这种接口中转的服务?

  •  
  •   john990 · 2021-03-05 17:43:53 +08:00 via iPhone · 3505 次点击
    这是一个创建于 1361 天前的主题,其中的信息可能已经有所发展或是发生改变。
    很多时候开发客户端,需要用到一些付费接口,key 什么的不方便存在客户端,要是有一个中转服务就好了,接口请求直接到中转那里,中转把 key 添加上去。

    所以有没有这种服务呢?无开发量那种。
    第 1 条附言  ·  2021-03-06 11:01:12 +08:00
    API Gateway 应该就是我需要的,谢谢大家
    第 2 条附言  ·  2021-03-06 11:01:24 +08:00
    API Gateway 应该就是我需要的,谢谢大家
    25 条回复    2021-03-07 02:42:11 +08:00
    brust
        1
    brust  
       2021-03-05 17:45:36 +08:00
    短链
    john990
        2
    john990  
    OP
       2021-03-05 17:59:58 +08:00 via iPhone
    @brust 短链是公开的,请求一次就知道完整网址,和透明的没什么区别
    br_wang
        3
    br_wang  
       2021-03-05 18:00:18 +08:00
    key 、token 什么的,也不方便存在第三方吧……
    eason1874
        4
    eason1874  
       2021-03-05 18:04:21 +08:00
    有,API 网关就是干这活的,云服务厂商都有,按量付费,请求+流量分别计费
    zhuweiyou
        5
    zhuweiyou  
       2021-03-05 18:04:24 +08:00
    云函数 + API 网关
    pelloz
        6
    pelloz  
       2021-03-05 18:09:40 +08:00
    很奇怪。。为什么你不自己部署一个 nginx 转发
    cxe2v
        7
    cxe2v  
       2021-03-05 18:43:21 +08:00
    @pelloz nginx 转发不做开发工作的话能修改请求吗?
    gam2046
        8
    gam2046  
       2021-03-05 19:01:54 +08:00
    其实没差别啊。

    如果用户侧持有某个 KEY,可以导致其访问某个业务。
    现在你通过中转服务隐藏 KEY,用户侧直接访问这个中转服务,一样可以访问其业务。

    本质上没多大区别呀。

    鉴定可信终端不是依靠信息不对称实现的。
    aisk
        9
    aisk  
       2021-03-05 19:11:43 +08:00
    然后发现这个中转服务会被人乱调,所以在中转服务上也加了一套 key 做验证。过了几天又有人问,有没有办法给这类中转服务器做一个中转?
    jimmyismagic
        10
    jimmyismagic  
       2021-03-05 19:11:52 +08:00
    自己写一个中转,简简单单的事情,把 key 存在别人那儿,始终不安全
    lewinlan
        11
    lewinlan  
       2021-03-05 20:54:34 +08:00 via Android
    现写一个不就几分钟的事吗
    devliu1
        12
    devliu1  
       2021-03-05 21:28:24 +08:00
    自己随便写一个 server 包装下就完事了
    john990
        13
    john990  
    OP
       2021-03-05 22:11:07 +08:00 via iPhone
    @jimmyismagic
    @lewinlan
    @devliu1
    对不熟悉服务端的人并不是简简单单,需要开发,部署服务,选择服务器,服务器安全,测试每个国家连接速度
    jim9606
        14
    jim9606  
       2021-03-05 22:31:06 +08:00
    @gam2046 有意义的,通常这个 apikey 都是外部服务商给的,如果因为外部原因要更换就很麻烦。用上 api 网关之后客户端和网关间的身份验证就完全由内部掌控了,同时像什么调用频率限制也会更容易实现。
    chinvo
        15
    chinvo  
       2021-03-05 22:38:15 +08:00 via iPhone
    中转那边不是也得做鉴权……
    gam2046
        16
    gam2046  
       2021-03-05 22:40:22 +08:00
    @jim9606 #14 那这个需求的本质其实是做一层隔离,而隔离的目的并不是为了安全,而是为了解耦。

    解耦,这样的设计是具有积极意义的,并且在实际生产环境中也很常见。
    安全,如果非要说这样兜一圈安全性有什么提升,应该就是自己做一些额外的校验工作,例如频率限制、限制来源、负载均衡,添加原后端请求不支持的安全参数等,但这样就不是一个简单的服务的包装了,这更接近于业务逻辑。涉及业务层一般就不太会有楼主希望的那种第三方或者比较具有通用性的统一包装服务了。
    devliu1
        17
    devliu1  
       2021-03-05 22:44:28 +08:00
    @john990 那你这个需求应该是要加钱。简简单单+不需要开发+不需要部署+不需要选择+安全+速度 OK = 加钱
    john990
        18
    john990  
    OP
       2021-03-05 23:25:21 +08:00 via iPhone
    @devliu1 加钱没问题,大概看了 Google 和 Amazon 的 API Gateway 好像可以,但是还没用明白
    opengps
        19
    opengps  
       2021-03-05 23:35:21 +08:00 via Android
    用个临时域名,限制主机头访问
    mooyo
        20
    mooyo  
       2021-03-05 23:46:27 +08:00
    openresty 搞一搞
    imycc
        21
    imycc  
       2021-03-05 23:55:05 +08:00
    没听说过通用的,一般都是公司内某个中台服务团队来干这种事吧。
    对外提供一个只能做有限功能的接口,对内封装第三方厂商的鉴权及业务逻辑。
    如果要客户端直通第三方服务的话,类似的东西我只听过阿里云的 STS,临时下发一个 Token 给客户端。
    eason1874
        22
    eason1874  
       2021-03-06 08:30:34 +08:00
    @john990 API 网关可以自定义 path,header,query 。如果后端 key 是固定的,在 API 网关网页控制台就能配置好转发了,如果 key 是根据参数计算的,那就要用上云函数了,避免不了代码。
    john990
        23
    john990  
    OP
       2021-03-06 11:00:34 +08:00 via iPhone
    @eason1874 对对,我需要的就是 API 网关,而且亚马逊有相关 SDK,应该可以解决一部分安全问题
    akira
        24
    akira  
       2021-03-06 14:20:20 +08:00
    有的呀,api 网关 其中一个作用就是 整合不同接口的差异化
    daimaosix
        25
    daimaosix  
       2021-03-07 02:42:11 +08:00 via Android
    Nginx 反向代理就行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:53 · PVG 17:53 · LAX 01:53 · JFK 04:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.