V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wszgrcy
V2EX  ›  前端开发

问下后端大佬们都是这么设计下载文件接口的吗?

  •  
  •   wszgrcy · 2020-05-29 09:57:22 +08:00 · 1634 次点击
    这是一个创建于 1665 天前的主题,其中的信息可能已经有所发展或是发生改变。

    后端设计了个接口,发送条件,返回文件,刚开始是没问题的. 直到有一天这个操作,下载返回了 null 文件,然后文件里一个 json 格式的报错.然后我就查,查了半天发现,这个报错,后端返回的状态码是 200,但是返回的 json 格式(普通接口的失败格式),我这边当然是认为,只要是 200 都是正常的返回.所以就下载了 然后后端提出这个要求,就是返回数据时先强制转换回文本,看看是不是 json 并且有没有报错码.如果是就抛出异常 但是我认为,这种情况下混用(正常文件返回和报错返回),本来就是有问题的.毕竟你不知道是不是人家传的文件,万一就是那样的格式怎么办? 于是要求后端改状态码,但是后端就不改.......于是问题就搁置了,所以问问大佬们应该怎么设计这个下载文件的接口,出错时应该怎么返回...

    5 条回复    2020-07-14 10:34:45 +08:00
    linauror
        1
    linauror  
       2020-05-29 10:04:54 +08:00
    这个基本是谁话语权大听谁的,比如微信支付的下载对账单就是你们当前这种形式,但支付宝的下载对账单是报文里再包含下载链接,通过下载链接来获取文件。
    pushback
        2
    pushback  
       2020-05-29 10:12:58 +08:00
    返文件流返链接都可以,这里怎么看都是后端没做业务异常处理(本人后端🐶)
    ditel
        3
    ditel  
       2020-05-29 10:18:35 +08:00 via Android
    下载报错不直接跳报错页吗
    reus
        4
    reus  
       2020-05-29 10:47:34 +08:00 via Android
    不是,傻逼才这么设计
    其他接口全都返回 200 也就算了,下载出错当然不能是 200,非要返回 json,可以放在 header 里
    noobcoder1
        5
    noobcoder1  
       2020-07-14 10:34:45 +08:00
    小文件返流,大文件返下载链接
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1142 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:34 · PVG 02:34 · LAX 10:34 · JFK 13:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.