这边的 API 的 http code 都是 200 ,业务错误码都写在响应体里了,现在有个接口返回的是文件,就没办法判断错误码了,这也算这种模式的一个局限性了,只能考虑把文件 base64 放在响应体里吗?
这边的 API 的 http code 都是 200 ,业务错误码都写在响应体里了,现在有个接口返回的是文件,就没办法判断错误码了,这也算这种模式的一个局限性了,只能考虑把文件 base64 放在响应体里吗?
|
RightHandFeb 19, 2025 via Android
1
又不是不能用
|
|
xiaoming1992Feb 19, 2025 via Android
2
有业务错误,就不响应文件(而是响应业务错误码),不就行了。
|
|
BeautifulSoapFeb 19, 2025
3
接口错误了还返回正常文件吗。。。。
|
|
vincentWdpFeb 19, 2025
4
判断 response header 里的 content-type 看是 json 还是其他
|
|
ffLoveJavaFeb 19, 2025
5
借此请教个类似的疑问:springBoot +vue
普通的接口都同意返回一个结果对象封装了状态码、错误信息、返回数据。 但是返回文件流的接口,比如某些文件添加当前登录用户信息的水印后以流的形式返给前端,这种接口返回类型是 void ,字节流放在 HttpServletResponse 中 flush 返回。 那这种接口出现错误后,比如无权查看、文件被锁定无法查看 等等 怎么返回前端? 前端通过什么判断是一个正常的文件流还是一串错误信息 |
|
ezXE2VFeb 19, 2025
6
返回文件的 oss 地址?
|
|
chendyFeb 19, 2025
7
问题是接口为啥返回文件,直接给用户下载不行么…
|
|
yinminFeb 19, 2025 via iPhone
8
#4 正解。判断 response header 的 content-type ,如果出错是 application/json ,response body 是包含错误信息的 json 数据;如果正常返回 application/octet-stream ,response body 是二进制文件
|
|
laimikanFeb 19, 2025
9
文件都返回了为啥还有失败?
|
|
xuanbgFeb 19, 2025
10
不返回文件的 url ?直接返回文件流?
|
|
11
@vincentWdp 也是一种思路,我试试
|
|
sthwrongFeb 20, 2025
12
@ffLoveJava 思路差不多的,能返回流了那么响应头肯定不一样了,这时候的异常和业务异常无关,业务异常你按常规的比如 json 响应头返回就行了。
|