V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
SolidZORO
V2EX  ›  问与答

API 中,你們用 status 還是 code? total 還是 count?

  •  
  •   SolidZORO · 2015-09-20 21:32:02 +08:00 · 2292 次点击
    这是一个创建于 3351 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如題。

    另外,條目的展示是否用 data 包起來比較好,比如:

    "status": 200,
    "total": 57,
    "data" : {
        [
            "item" : {
                "id": 1,
                "name" : "name1"
            },
    
            ...
    
            "item" : {
                "id": 999,
                "name" : "name999"
            }
        ]
    }
    

    API 這種東西設計感覺稍有不嚴謹就會照成很多「歷史問題」。小弟第一次寫 API ,經驗不足,於是參照了一下各大 SNS 的 API ,發現他們混用情況很嚴重,一下用 code 一下用 status 。

    就連 stripe 這種把 API 當藝術品在維護的文檔,也有這種現象,而且在 stripe 的 API 中,我還發現兩個新詞 amounttotal_count 這讓我比較困惑,不知參照誰的標準去定義 API 。

    雖然自己隨便選一個單詞來定義即可,但還是想問問大家是怎麼處理,以及有什麼好的範例推薦。

    11 条回复    2015-09-21 11:32:19 +08:00
    Comdex
        1
    Comdex  
       2015-09-20 21:54:18 +08:00
    我用 status 和 count
    zonghua
        2
    zonghua  
       2015-09-20 21:58:55 +08:00
    我受够了,暂时不碰这些软件。
    Lucups
        3
    Lucups  
       2015-09-20 22:17:46 +08:00
    我们现在的结构是:

    {
    "code": 0,
    "message": "",
    "errors": [],
    "data": []
    }

    message 是一句话友好提示, errors 是详细的错误信息
    Lucups
        4
    Lucups  
       2015-09-20 22:21:46 +08:00
    status 范围太大, code 很明显是个数字,这个叫法应该是从 http status code 来的(注意最后一个单词是 code ),所以如果是数字,我觉得应该用 code , status 给我的感觉是:

    status: {
    code: 001
    message: "啦啦啦"
    }

    total/count 之类的,全部放在 data 里,都属于数据嘛
    loveuqian
        5
    loveuqian  
       2015-09-20 22:22:38 +08:00 via iPhone
    你们后端都用 id 嘛
    OC 的 id 都要转一下才能用
    htfy96
        6
    htfy96  
       2015-09-20 22:27:18 +08:00
    totCnt
    msg
    name
    code

    C 风格……
    SolidZORO
        7
    SolidZORO  
    OP
       2015-09-20 23:01:41 +08:00
    @Lucups 嗯,這個方法很好,看來以後分為 `status` 和 `data` 兩大塊是個好辦法。 total 放在 `data` 裡面似乎不適合,但好像放在 `status` 裡面也不是十分適合,但比放 `data` 好一點點⋯⋯
    kslr
        8
    kslr  
       2015-09-21 00:24:11 +08:00 via Android
    @SolidZORO 状态,数据。 total 也是数据的一部分,感觉挺适合
    murusu
        9
    murusu  
       2015-09-21 00:28:49 +08:00
    分成 status 跟 data
    status 返回执行状态
    所有返回数据包括错误信息都放到 data 子项中
    loveyu
        10
    loveyu  
       2015-09-21 09:00:29 +08:00
    {
    status:bool,
    code:0,
    msg:'',
    data:{}
    }
    我一般这么玩
    julyclyde
        11
    julyclyde  
       2015-09-21 11:32:19 +08:00
    据说考虑到域名劫持、 AJAX 客户端的问题,不应该用 HTTP status ,而应该 encode 到内容里去
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2918 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:13 · PVG 11:13 · LAX 19:13 · JFK 22:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.