后端设计了个接口,发送条件,返回文件,刚开始是没问题的. 直到有一天这个操作,下载返回了 null 文件,然后文件里一个 json 格式的报错.然后我就查,查了半天发现,这个报错,后端返回的状态码是 200,但是返回的 json 格式(普通接口的失败格式),我这边当然是认为,只要是 200 都是正常的返回.所以就下载了 然后后端提出这个要求,就是返回数据时先强制转换回文本,看看是不是 json 并且有没有报错码.如果是就抛出异常 但是我认为,这种情况下混用(正常文件返回和报错返回),本来就是有问题的.毕竟你不知道是不是人家传的文件,万一就是那样的格式怎么办? 于是要求后端改状态码,但是后端就不改.......于是问题就搁置了,所以问问大佬们应该怎么设计这个下载文件的接口,出错时应该怎么返回...
1
linauror 2020-05-29 10:04:54 +08:00
这个基本是谁话语权大听谁的,比如微信支付的下载对账单就是你们当前这种形式,但支付宝的下载对账单是报文里再包含下载链接,通过下载链接来获取文件。
|
2
pushback 2020-05-29 10:12:58 +08:00
返文件流返链接都可以,这里怎么看都是后端没做业务异常处理(本人后端🐶)
|
3
ditel 2020-05-29 10:18:35 +08:00 via Android
下载报错不直接跳报错页吗
|
4
reus 2020-05-29 10:47:34 +08:00 via Android
不是,傻逼才这么设计
其他接口全都返回 200 也就算了,下载出错当然不能是 200,非要返回 json,可以放在 header 里 |
5
noobcoder1 2020-07-14 10:34:45 +08:00
小文件返流,大文件返下载链接
|