http 接口返回图片或错误码,该如何设计?

2021-11-29 20:46:47 +08:00
 abgnwl

请求中携带验证信息,验证通过返回图片( 100K 以下),验证不通过返回错误码,请问该如何设计比较合适?

  1. 验证通过后 body 返回图片,content-type: image/xxx ;验证不通过 body 返回 json 格式的错误码+错误信息,content-type: application/json

  2. 图片 base64 后放在 json 中,统一使用 body 返回 json ,content-type: application/json

  3. 验证通过后 body 返回图片,content-type: image/xxx ;通过自定义 header 返回错误码+错误信息

1222 次点击
所在节点    问与答
13 条回复
WhateverYouLike
2021-11-29 20:52:23 +08:00
2
maladroit
2021-11-29 21:01:41 +08:00
1 也可以吧,觉得没什么问题
eason1874
2021-11-29 21:08:41 +08:00
对象存储是第一种,JSON 换 XML

第二种会增加很多流量,base64 增加 30% 体积
abgnwl
2021-11-29 21:10:22 +08:00
第一种感觉调用方逻辑会比较奇怪,需要通过 content type 来判断,有的时候处理 json body ,有的时候处理二进制 body
lower
2021-11-29 21:22:54 +08:00
嫌 base64 体积大,body 里返回 img url 呗
leoskey
2021-11-29 21:58:28 +08:00
返回 image url 可利用上缓存
xmumiffy
2021-11-30 02:25:24 +08:00
方法一 但是验证不通过的 http code 为 403
xmumiffy
2021-11-30 02:27:29 +08:00
@leoskey 这接口可能就是用来当 image url 的
xmumiffy
2021-11-30 02:28:05 +08:00
@xmumiffy 哦 其实和方法三差不多,不过要客户端自己实现判断了
corningsun
2021-11-30 10:32:08 +08:00
1 不推荐。100k 以下,我选 2
ysc3839
2021-11-30 13:58:51 +08:00
我选 1 ,前端要支持这种情况就多几行代码而已,但是可以省性能和流量。
gadfly3173
2021-11-30 14:25:47 +08:00
1 ,axios 之类的拦截器处理也要不了几行代码
iseki
2021-11-30 17:40:19 +08:00
1 ,HTTP 状态码要用起来,至少出错时不许返回 200

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

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

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

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

© 2021 V2EX