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

2015-09-20 21:32:02 +08:00
 SolidZORO

如題。

另外,條目的展示是否用 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 。

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

2203 次点击
所在节点    问与答
11 条回复
Comdex
2015-09-20 21:54:18 +08:00
我用 status 和 count
zonghua
2015-09-20 21:58:55 +08:00
我受够了,暂时不碰这些软件。
Lucups
2015-09-20 22:17:46 +08:00
我们现在的结构是:

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

message 是一句话友好提示, errors 是详细的错误信息
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
2015-09-20 22:22:38 +08:00
你们后端都用 id 嘛
OC 的 id 都要转一下才能用
htfy96
2015-09-20 22:27:18 +08:00
totCnt
msg
name
code

C 风格……
SolidZORO
2015-09-20 23:01:41 +08:00
@Lucups 嗯,這個方法很好,看來以後分為 `status` 和 `data` 兩大塊是個好辦法。 total 放在 `data` 裡面似乎不適合,但好像放在 `status` 裡面也不是十分適合,但比放 `data` 好一點點⋯⋯
kslr
2015-09-21 00:24:11 +08:00
@SolidZORO 状态,数据。 total 也是数据的一部分,感觉挺适合
murusu
2015-09-21 00:28:49 +08:00
分成 status 跟 data
status 返回执行状态
所有返回数据包括错误信息都放到 data 子项中
loveyu
2015-09-21 09:00:29 +08:00
{
status:bool,
code:0,
msg:'',
data:{}
}
我一般这么玩
julyclyde
2015-09-21 11:32:19 +08:00
据说考虑到域名劫持、 AJAX 客户端的问题,不应该用 HTTP status ,而应该 encode 到内容里去

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

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

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

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

© 2021 V2EX