abgnwl
V2EX  ›  问与答

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

  •  
  •   abgnwl · Nov 29, 2021 · 2255 views
    This topic created in 1655 days ago, the information mentioned may be changed or developed.

    请求中携带验证信息,验证通过返回图片( 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 返回错误码+错误信息

    13 replies    2021-11-30 17:40:19 +08:00
    Jaufey
        1
    Jaufey  
       Nov 29, 2021 via Android
    2
    maladroit
        2
    maladroit  
       Nov 29, 2021
    1 也可以吧,觉得没什么问题
    eason1874
        3
    eason1874  
       Nov 29, 2021
    对象存储是第一种,JSON 换 XML

    第二种会增加很多流量,base64 增加 30% 体积
    abgnwl
        4
    abgnwl  
    OP
       Nov 29, 2021
    第一种感觉调用方逻辑会比较奇怪,需要通过 content type 来判断,有的时候处理 json body ,有的时候处理二进制 body
    lower
        5
    lower  
       Nov 29, 2021
    嫌 base64 体积大,body 里返回 img url 呗
    leoskey
        6
    leoskey  
       Nov 29, 2021
    返回 image url 可利用上缓存
    106npo
        7
    106npo  
       Nov 30, 2021 via Android
    方法一 但是验证不通过的 http code 为 403
    106npo
        8
    106npo  
       Nov 30, 2021 via Android
    @leoskey 这接口可能就是用来当 image url 的
    106npo
        9
    106npo  
       Nov 30, 2021 via Android
    @xmumiffy 哦 其实和方法三差不多,不过要客户端自己实现判断了
    corningsun
        10
    corningsun  
       Nov 30, 2021 via iPhone
    1 不推荐。100k 以下,我选 2
    ysc3839
        11
    ysc3839  
       Nov 30, 2021 via Android
    我选 1 ,前端要支持这种情况就多几行代码而已,但是可以省性能和流量。
    gadfly3173
        12
    gadfly3173  
       Nov 30, 2021
    1 ,axios 之类的拦截器处理也要不了几行代码
    iseki
        13
    iseki  
       Nov 30, 2021
    1 ,HTTP 状态码要用起来,至少出错时不许返回 200
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1136 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 18:13 · PVG 02:13 · LAX 11:13 · JFK 14:13
    ♥ Do have faith in what you're doing.