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

阿里云这个 API 的接口签名可真是够让人崩溃的。

  •  
  •   jimrok · Feb 28, 2019 · 6687 views
    This topic created in 2654 days ago, the information mentioned may be changed or developed.

    文档在这里 https://help.aliyun.com/document_detail/29475.html?spm=a2c4g.11186623.2.19.7d864ae0ZVtces

    看完了仍然是一头雾水,参考了 java 代码写了一个,调试了半天,仍然不知道哪里有问题。设计一个这么复杂的签名机制,居然没有贴一个完整的 HTTP 请求的例子,以及计算后的结果,你只能拿线上环境乱试。

    线上返回的结果就是他计算时简单的一个串,可能一些 Header 信息也没有放进去不知道,文档里没有解释。也没有提供一个测试环境让你去验证。我想要的就是有个环境可以验证签名,发送过去后,不对可以吧 server 端详细的计算日志返回来。

    15 replies    2019-03-01 17:48:25 +08:00
    Lax
        1
    Lax  
       Feb 28, 2019
    做过一次就好了,不行就上 github 搜搜开源库,java 的轮子还是有的
    TheWalkingDead
        2
    TheWalkingDead  
       Feb 28, 2019
    和 AWS s3 鉴权 api 差不多,多测试下,这种对格式要求很严格。
    leavic
        3
    leavic  
       Feb 28, 2019
    阿里的文档还是算了吧,我都是看代码然后自己猜的。
    jalena
        4
    jalena  
       Feb 28, 2019
    来,打个脸
    https://github.com/aliyun/api-gateway-demo-sign-java

    进去一看就是文档,底下就是一个参考 demo~
    lazyfighter
        5
    lazyfighter  
       Feb 28, 2019
    都有 demo 就不说啥了
    jimrok
        6
    jimrok  
    OP
       Feb 28, 2019
    @lazyfighter demo 代码写的太烂,不能用在生产上。果然骂完就弄出来了,X-Ca-Signature-Headers 这个参数太奇葩,这么重要的信息文档里放在很不起眼的地方。
    jimrok
        7
    jimrok  
    OP
       Feb 28, 2019
    @jalena 先看的那个代码,写的太乱,啰嗦。一个签名的 demo 要搞一个 client 给你用。不想研究,要用 okhttp 去写,对着文档一遍遍调试,想杀这个写文档的。
    datafeng
        8
    datafeng  
       Feb 28, 2019
    那去看看微信的支付接口文档估计会更崩溃~~
    Visionhope
        9
    Visionhope  
       Feb 28, 2019 via Android
    @datafeng 确实,第一次看很难理解
    jalena
        10
    jalena  
       Mar 1, 2019
    @jimrok 我觉得没啥毛病,首先看别人的就是看个思路,你只要知道他是干啥的,完全可以自己实现撒。另外对于接口我觉得这些基础方法抽象出来也是可以的,至少你在后续维护的时候也能清楚的知道我要改什么,不至于每个代码都去搞撒
    jalena
        11
    jalena  
       Mar 1, 2019
    @jimrok 我看了这个 demo,我觉得完全没有问题,他将这个 gateway 的方法抽象为一个 client 是完全合情合理的!里面涵盖的各类抽象方法也都合理。。

    我就不知道你的程序结构应该是如何的了!
    koolob
        12
    koolob  
       Mar 1, 2019
    可以直接用阿里云提供的 SDK,只需要设置 AccessKey 信息就好了。如果只是为了使用而已的话,可以省好多事情。
    joshu
        13
    joshu  
       Mar 1, 2019 via Android
    看了国际版阿里云的文档你会更崩溃
    jimrok
        14
    jimrok  
    OP
       Mar 1, 2019
    @jalena 因为 http 的 client 我们封装了 okhttp,,我就不需要他这个结构。我需要一段签名算法的代码,结果 demo 扔过来一个 client。就好像你朝你同事要数据库的密码验证的算法,他扔给你一个用户登录模块。
    mengdodo
        15
    mengdodo  
       Mar 1, 2019
    别吵吵,用爱去感化它
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1066 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 23:18 · PVG 07:18 · LAX 16:18 · JFK 19:18
    ♥ Do have faith in what you're doing.