• 请不要在回答技术问题时复制粘贴 AI 生成的内容
h82258652
V2EX  ›  程序员

采取 RESTful 风格的 api 是否应该对结果包一层?

  •  
  •   h82258652 ·
    h82258652 · Oct 21, 2019 · 29564 views
    This topic created in 2420 days ago, the information mentioned may be changed or developed.

    RT,今天公司的新项目开始对接,app 端的一看我这接口就吐槽我。让我改成如下这种: { "code": 200, "message": "", "data": xxx }

    但我觉得首先这 code 肯定是多余的,可以直接从 http 状态码里面读取。之前也看过 twitter 的 api,也没有说包一层,200 的话那就直接返回 data 了。 公司项目我就忍忍算了,毕竟人家老员工。但后面有自己项目的话,还是想弄标准一点。不知道一般来说,大家是怎样实现?

    305 replies    2019-10-24 10:47:14 +08:00
    1  2  3  4  
    no1xsyzy
        301
    no1xsyzy  
       Oct 23, 2019
    @icris #293 生态系统割裂啊,fetch 是只要有(完整?)数据回来,就是走 then 的,只有连 status code 都没有才是 catch。
    gscoder
        302
    gscoder  
       Oct 23, 2019
    需要,http 的几个状态码完全满足不了稍微复杂的业务。。我们只是业务状态码就从 1001 排到了 9999
    SpringBlossom
        303
    SpringBlossom  
       Oct 23, 2019
    @markgor 最后那句除了百度和 360 还要包括腾讯
    markgor
        304
    markgor  
       Oct 24, 2019
    @Woood 騰訊我不好說,畢竟吃人嘴軟拿人手短;反正我也不接觸騰訊遊戲,就微信和 QQ 這兩方面,我覺得還算好吧。唯一貢獻給騰訊的只有綠磚和 qq 會員了。不過騰訊雲,有點坑。
    Elietio
        305
    Elietio  
       Oct 24, 2019
    业务 code 还是有必要的
    我们最近的项目是这样做法,http code+业务 code,
    http code 200,业务 code 0 表示处理成功
    http code 40X, 返回具体的业务 code 表示客户端请求错误,一般是鉴权、参数校验不通过
    http code 50X,同上,表示服务端错误,服务处理的错误和异常
    另外 nginx 之类的反代要注意是否有对不同 http code 做了处理,否则非 200 响应可能会返回默认错误页面
    1  2  3  4  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   918 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    ♥ Do have faith in what you're doing.