例如用户密码错误 是这样返回
{
"code":"PASSWORD_ERROR"
}
还是
{
"code":"401001"
}
这两种那种更好呢?我是更偏向第一种的,因为可能调用接口的人一眼就能看出来这个接口的问题。
但是我看大部分的接口都是第二种的返回,那么哪种更好呢?有什么优缺点呢?
如果第二种更好,那错误码是写程序之前定义?还是写一个定义一个看一下上一个错误码到几了?
1
geelaw 2017-09-18 14:08:52 +08:00 via iPhone
都一样,没啥区别
前者你还是要验证这个错误缩略语是否用过。 后者的一个好处是,调试的时候你可以用语言内置机制自动生成错误代码,发布的时候再把代码固定下来。还有一个好处是不会英语露怯。 顺便,如果你有一个 Windows 错误代码,你可以 net helpmsg 错误代码 查看 Win32 LastError 代码的含义,这类工具会比较有帮助。 PASSWORD_ERROR 是拗口的,更合适的说法是 INVALID_CREDENTIAL。 |
2
zhangjiha 2017-09-18 14:09:05 +08:00
{ code: 12345, msg: “ error msg ”}
code 用于对接的前端根据错误码做处理。 msg 用于后台调试。 愚见 |
3
m939594960 OP @zhangjiha #2 其实根据 msg 进行识别也没有什么问题啊
|
4
l00t 2017-09-18 18:05:31 +08:00
两个都返回啊。这很难吗?
|
5
johnny23 2017-09-18 18:13:47 +08:00 via iPhone
{ code,msg,data}返回三个 有的需要一些数据可以写到 data 里面 不想要的设置为 null
|
6
eb22fbb4 2017-09-18 18:15:04 +08:00 via Android
code 是给前端做判断的,要有语义,至于请求是否成功是 http status code 的事,而不是自己发明一对数字,所以我一直比较反感用一串数字的,还得搞个对照,我推荐第一种再加上合理的 http status code ( status code)不加在 body 里。
|
7
dong3580 2017-09-18 18:54:32 +08:00 via Android
两个都返回可读性好点,
|
8
misaka19000 2017-09-18 19:03:54 +08:00 via Android
code + msg
|
9
onlyhot 2017-09-18 19:16:52 +08:00
code: 401001 message:PASSWORD_ERROR
|
10
maemual 2017-09-18 19:34:33 +08:00
都返回啊。
|
12
honeycomb 2017-09-19 11:31:00 +08:00 via Android
两个一起用
|