wszgrcy

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

  •  
  •   wszgrcy · May 29, 2020 · 2154 views
    This topic created in 2250 days ago, the information mentioned may be changed or developed.

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

    5 replies    2020-07-14 10:34:45 +08:00
    linauror
        1
    linauror  
       May 29, 2020
    这个基本是谁话语权大听谁的,比如微信支付的下载对账单就是你们当前这种形式,但支付宝的下载对账单是报文里再包含下载链接,通过下载链接来获取文件。
    pushback
        2
    pushback  
       May 29, 2020
    返文件流返链接都可以,这里怎么看都是后端没做业务异常处理(本人后端🐶)
    ditel
        3
    ditel  
       May 29, 2020 via Android
    下载报错不直接跳报错页吗
    reus
        4
    reus  
       May 29, 2020 via Android
    不是,傻逼才这么设计
    其他接口全都返回 200 也就算了,下载出错当然不能是 200,非要返回 json,可以放在 header 里
    noobcoder1
        5
    noobcoder1  
       Jul 14, 2020
    小文件返流,大文件返下载链接
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   963 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 19:50 · PVG 03:50 · LAX 12:50 · JFK 15:50
    ♥ Do have faith in what you're doing.