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

2020-05-29 09:57:22 +08:00
 wszgrcy

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

1621 次点击
所在节点    前端开发
5 条回复
linauror
2020-05-29 10:04:54 +08:00
这个基本是谁话语权大听谁的,比如微信支付的下载对账单就是你们当前这种形式,但支付宝的下载对账单是报文里再包含下载链接,通过下载链接来获取文件。
pushback
2020-05-29 10:12:58 +08:00
返文件流返链接都可以,这里怎么看都是后端没做业务异常处理(本人后端🐶)
ditel
2020-05-29 10:18:35 +08:00
下载报错不直接跳报错页吗
reus
2020-05-29 10:47:34 +08:00
不是,傻逼才这么设计
其他接口全都返回 200 也就算了,下载出错当然不能是 200,非要返回 json,可以放在 header 里
noobcoder1
2020-07-14 10:34:45 +08:00
小文件返流,大文件返下载链接

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676553

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX