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

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

  •  
  •   m939594960 · 2017-09-18 13:52:50 +08:00 · 3199 次点击
    这是一个创建于 2629 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    
    {
    	"code":"PASSWORD_ERROR"
    }
    
    

    还是

    
    {
    	"code":"401001"
    }
    
    

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

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

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

    第 1 条附言  ·  2017-09-19 09:23:21 +08:00
    谢谢大家的建议,有很多不同的意见 ,说都返回的相对来说比较多一点。
    我个人比较喜欢 @eb22fbb4 的做法。
    第 2 条附言  ·  2017-09-19 09:24:41 +08:00
    感谢功能是不好用了么?我点了很多遍都不成功??
    12 条回复    2017-09-19 11:31:00 +08:00
    geelaw
        1
    geelaw  
       2017-09-18 14:08:52 +08:00 via iPhone
    都一样,没啥区别

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

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

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

    PASSWORD_ERROR 是拗口的,更合适的说法是 INVALID_CREDENTIAL。
    zhangjiha
        2
    zhangjiha  
       2017-09-18 14:09:05 +08:00
    { code: 12345, msg: “ error msg ”}
    code 用于对接的前端根据错误码做处理。
    msg 用于后台调试。
    愚见
    m939594960
        3
    m939594960  
    OP
       2017-09-18 17:55:19 +08:00
    @zhangjiha #2 其实根据 msg 进行识别也没有什么问题啊
    l00t
        4
    l00t  
       2017-09-18 18:05:31 +08:00
    两个都返回啊。这很难吗?
    johnny23
        5
    johnny23  
       2017-09-18 18:13:47 +08:00 via iPhone
    { code,msg,data}返回三个 有的需要一些数据可以写到 data 里面 不想要的设置为 null
    eb22fbb4
        6
    eb22fbb4  
       2017-09-18 18:15:04 +08:00 via Android
    code 是给前端做判断的,要有语义,至于请求是否成功是 http status code 的事,而不是自己发明一对数字,所以我一直比较反感用一串数字的,还得搞个对照,我推荐第一种再加上合理的 http status code ( status code)不加在 body 里。
    dong3580
        7
    dong3580  
       2017-09-18 18:54:32 +08:00 via Android
    两个都返回可读性好点,
    misaka19000
        8
    misaka19000  
       2017-09-18 19:03:54 +08:00 via Android
    code + msg
    onlyhot
        9
    onlyhot  
       2017-09-18 19:16:52 +08:00
    code: 401001 message:PASSWORD_ERROR
    maemual
        10
    maemual  
       2017-09-18 19:34:33 +08:00
    都返回啊。
    gdtv
        11
    gdtv  
       2017-09-18 19:36:04 +08:00
    @onlyhot
    code: 401001 message:"password error!"
    honeycomb
        12
    honeycomb  
       2017-09-19 11:31:00 +08:00 via Android
    两个一起用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:00 · PVG 18:00 · LAX 02:00 · JFK 05:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.