V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
pubby
V2EX  ›  全球工单系统

百度,你家 api 怎么又改了

  •  
  •   pubby · 2019-07-26 00:13:39 +08:00 · 4277 次点击
    这是一个创建于 1985 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接口: https://api.baidu.com/json/sms/service/BulkJobService/getFileStatus

    {"isGenerated":2} 突然变成了 {"isGenerated":"2"}

    为什么是"又"呢?

    之前另一个百度接口

    本来返回 {"logid":123456} 某一天突然变成了 {"logid":"123456"}

    第 1 条附言  ·  2019-07-26 09:32:14 +08:00
    补充一下
    第一个是百度核心业务搜索推广的
    第二个是百度大脑 AI 业务的


    api 版本不变的情况下随意调整数据类型的,这么多年来除了百度就没碰到过
    赚钱的业务也能做成这样,真替百度担忧
    第 2 条附言  ·  2019-07-26 12:18:05 +08:00
    刚才又检查了一下,isGenerated 又改回 int 类型了
    21 条回复    2019-07-26 11:15:59 +08:00
    KomeijiSatori
        1
    KomeijiSatori  
       2019-07-26 01:11:53 +08:00
    百度网盘的接口也是(

    同一个接口同一个字段 一下返回 string 一下返回 int
    auser
        2
    auser  
       2019-07-26 02:16:51 +08:00 via iPhone
    可能是因为不熟悉 PHP 的人写的吧
    yuzo555
        3
    yuzo555  
       2019-07-26 03:49:31 +08:00
    可能是 [直接取缓存] 和 [回源取] 两种情况的代码不一致导致的 bug
    jaskle
        4
    jaskle  
       2019-07-26 07:07:45 +08:00 via Android
    一定是改了接口,翻新了一版,只不过测试环境是 js,用==感觉不到
    okwork
        5
    okwork  
       2019-07-26 07:23:43 +08:00 via Android
    大厂调整 API 是非常头痛的事情,某厂以前可以默认不传的参数,升级接口后变成了默认不传参数就无效,结果跑了 1 年多正常的业务,静默状态下就搞挂了,好几个月之后看日志才发现怎么数据不一样啦?程序明明没有改过,后来确认才知道 API 升级动过返回逻辑了。
    liuxey
        6
    liuxey  
       2019-07-26 08:34:03 +08:00   ❤️ 2
    这种大范围使用的对公接口涉及到修改需要发公告公示几个月再慢慢替换,对自己的责任毫无敬畏之心

    话说这样造成的损失可以申请赔偿吗?
    vinsony
        7
    vinsony  
       2019-07-26 08:41:30 +08:00   ❤️ 1
    这和我司 java 后台水平一样~~
    wszgrcy
        8
    wszgrcy  
       2019-07-26 08:54:08 +08:00 via Android
    @vinsony 哈哈,我上家这也有个 java,明明是 int 的,别人都能搞,后台偏让传 string,然后就那个接口最后传的是 string。。。。其它都是 int
    toma77
        9
    toma77  
       2019-07-26 09:19:16 +08:00
    之前和 bat 联调业务,这种情况天天遇到,当时是我们对接对方三个团队,那三个团队同时写同一个东西,我们调他们的接口是随机的(调到每个团队接口的概率是 1/3 ),他们会有统计(速度,匹配准确率之类的),最后结束的时候用统计结果最好的那个团队的接口。
    不知道你遇到的问题跟这个有没有关系
    pubby
        10
    pubby  
    OP
       2019-07-26 09:35:03 +08:00 via Android
    @toma77 应该不是,跑了几个月后突然改的。应该是切换到某个新版了
    ccoming
        11
    ccoming  
       2019-07-26 09:53:27 +08:00
    我不是程序员,就一个小小的数据分析员。
    简单搜索了下,也没多少解释“ logid ”的资料。
    不过,如果例子中的 123456,不是时间、日期、金额之类能加减,而是会员代码、物流单号、订单号之类,的确应该用字符串型记录比较好。
    并不是全部都是阿拉伯数字,就能用数值型保存的。
    说个可能被鄙视的例子:淘宝等电商后台上太长的订单号,如果用数值型记录,在 excel 里面会变成科学计数法 2E+10 的形式,后期根本匹配不了,都不知道被我吐槽多久了...
    guo8345345
        12
    guo8345345  
       2019-07-26 09:54:47 +08:00
    为什么要把之前的 int 改成 String 呢?求解
    ccoming
        13
    ccoming  
       2019-07-26 09:54:58 +08:00
    @ccoming 身分正号在 excel 里面用数值型记录,就是个很好的反面教材。
    pubby
        14
    pubby  
    OP
       2019-07-26 09:59:00 +08:00 via Android
    @ccoming 嗯,用什么类型其实约定好都可以的,

    我吐槽的是它突然变了
    ccoming
        15
    ccoming  
       2019-07-26 10:03:34 +08:00
    @pubby 应该不算突然改变吧?
    只是因为你不是内部人员,所以没有提前通知。
    估计是 bd 内部在规范代码,觉得这些是应该字符型的,所以统一改过来了?
    pubby
        16
    pubby  
    OP
       2019-07-26 10:38:55 +08:00 via Android
    @ccoming 你想想那些找外包写好程序的,用了几个月因为他们“统一改过来了”造成程序挂了。不得重新又花时间又花钱

    而且这样的调整应该是发新版 api,同时全网发通知更新 api。同时老版 api 继续保留较长的过渡时间
    ccoming
        17
    ccoming  
       2019-07-26 10:46:10 +08:00
    @pubby 嗯,那只是说 bd 更新 api 的时候,欠缺公示、通知。
    yejinmo
        18
    yejinmo  
       2019-07-26 10:47:57 +08:00
    搭车吐槽下百度网盘 PC 版的界面,实在是与百度自身体量不搭
    skiy
        19
    skiy  
       2019-07-26 10:52:11 +08:00
    后端使用的是非强制类型的语言写的吧?
    pubby
        20
    pubby  
    OP
       2019-07-26 11:04:10 +08:00
    @skiy 看文档我猜是 java 的

    其实就是乱来,bug,没什么可解释的

    lichdkimba
        21
    lichdkimba  
       2019-07-26 11:15:59 +08:00 via iPhone
    @ccoming 身份证有 X 数值型肯定不行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1012 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:51 · PVG 05:51 · LAX 13:51 · JFK 16:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.