大家写接口的时候错误返回是返回错误码,还是错误的英文简写?

2017-09-18 13:52:50 +08:00
 m939594960

例如用户密码错误 是这样返回


{
	"code":"PASSWORD_ERROR"
}

还是


{
	"code":"401001"
}

这两种那种更好呢?我是更偏向第一种的,因为可能调用接口的人一眼就能看出来这个接口的问题。

但是我看大部分的接口都是第二种的返回,那么哪种更好呢?有什么优缺点呢?

如果第二种更好,那错误码是写程序之前定义?还是写一个定义一个看一下上一个错误码到几了?

3219 次点击
所在节点    问与答
12 条回复
geelaw
2017-09-18 14:08:52 +08:00
都一样,没啥区别

前者你还是要验证这个错误缩略语是否用过。

后者的一个好处是,调试的时候你可以用语言内置机制自动生成错误代码,发布的时候再把代码固定下来。还有一个好处是不会英语露怯。

顺便,如果你有一个 Windows 错误代码,你可以 net helpmsg 错误代码 查看 Win32 LastError 代码的含义,这类工具会比较有帮助。

PASSWORD_ERROR 是拗口的,更合适的说法是 INVALID_CREDENTIAL。
zhangjiha
2017-09-18 14:09:05 +08:00
{ code: 12345, msg: “ error msg ”}
code 用于对接的前端根据错误码做处理。
msg 用于后台调试。
愚见
m939594960
2017-09-18 17:55:19 +08:00
@zhangjiha #2 其实根据 msg 进行识别也没有什么问题啊
l00t
2017-09-18 18:05:31 +08:00
两个都返回啊。这很难吗?
johnny23
2017-09-18 18:13:47 +08:00
{ code,msg,data}返回三个 有的需要一些数据可以写到 data 里面 不想要的设置为 null
eb22fbb4
2017-09-18 18:15:04 +08:00
code 是给前端做判断的,要有语义,至于请求是否成功是 http status code 的事,而不是自己发明一对数字,所以我一直比较反感用一串数字的,还得搞个对照,我推荐第一种再加上合理的 http status code ( status code)不加在 body 里。
dong3580
2017-09-18 18:54:32 +08:00
两个都返回可读性好点,
misaka19000
2017-09-18 19:03:54 +08:00
code + msg
onlyhot
2017-09-18 19:16:52 +08:00
code: 401001 message:PASSWORD_ERROR
maemual
2017-09-18 19:34:33 +08:00
都返回啊。
gdtv
2017-09-18 19:36:04 +08:00
@onlyhot
code: 401001 message:"password error!"
honeycomb
2017-09-19 11:31:00 +08:00
两个一起用

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

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

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

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

© 2021 V2EX