API 全局错误代码定义 ?

2019-03-27 15:55:15 +08:00
 luxiaokuo

有没有统一的标准或者是规范呢 ?

钉钉服务端 API 全局错误码:

https://open-doc.dingtalk.com/microapp/faquestions/rftpfg

3237 次点击
所在节点    程序员
12 条回复
reus
2019-03-27 16:09:17 +08:00
用数字的原因是,某一位或者几位可以表达多种选项,就好像某些产品的序列号的某几位代表生产厂、批号、日期等等

HTTP 的状态码也是这样,前面一个数字是有个大致的意义的

没有这种设计,又非要用数字状态码,还位数不一致,只能叫画虎不成反类犬

既有 404,又有 4200010,这种就是垃圾接口
chendy
2019-03-27 16:14:34 +08:00
貌似没有啥标准,一下是个人观点:
1,其实很多错误码并没有什么用,因为客户端一般也没有能力处理所有的异常情况…
2,字符串常量做错误码可能更好…就不用查表了
chinvo
2019-03-27 16:19:03 +08:00
可以考虑拿 http 错误码扩展,然后返回错误码的时候同时返回 human-friendly 的错误消息
yc8332
2019-03-27 16:19:41 +08:00
自己定义,主要是开发人员的沟通,和前端或者 app
1. 位数一致,一般某一位是区分模块的
2. 多语言需求
3. 特殊错误码,客户端需要处理(比如登录过期)
reus
2019-03-27 16:21:49 +08:00
字符串是最直观的,出错时不用查表,要用时不用查表。如果要表示多种状况,用多个字段都比纯数字好
TomVista
2019-03-27 16:32:53 +08:00
支持字符串,比较直观.
avenger
2019-03-27 16:45:43 +08:00
Varobjs
2019-03-27 17:34:25 +08:00
这种位数不统一的好傻,总觉得全局错误码给内部开发用的,比如统一 6 位表示错误码,10 ****表示用户模块,20 ****表示订单模块。
annielong
2019-03-27 18:12:16 +08:00
错误代码可定是后台人员用啊,要不然还返回什么错误代码,直接返回错误信息的了
hantsy
2019-03-27 20:12:01 +08:00
个人只用 Http Status Code,其它具体的信息在返回信息中提示,可以参考 Github API 设计。
specita
2019-03-28 10:24:44 +08:00
错误码感觉大多数时候没啥用啊,除非调用方根据码来做不同的处理,一般看个 msg 就行了,一般就定义几个常用的错误码,不怎么去细分
ZeawinL
2020-10-28 15:26:38 +08:00
有时候 Http 状态码是不够用的, 或者说无法表达更多的意思.
举个例子: 假如用户没有登录然后去访问一些需要登陆才能获取的资源, 后端返回非 200http 状态码并提示 msg 内容为'未登录', 此时前端无法做更多操作, 他只能弹出 msg 使得用户自己去点击跳转登录页面. 如果加上自定义的'未登录'错误码, 前端查询错误码知道这个用户当前需要登录, 于是便自动跳转到相应的登陆页面. (一方面也和后端解耦, 因为后端不清楚登录页面的具体地址所以后端不应该写重定向. ), 用户状态为'未授权', '未验证' 的自定义错误码同理.

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

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

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

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

© 2021 V2EX