V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
banxi1988
V2EX  ›  程序员

正纠结于返回错误的格式

  •  
  •   banxi1988 ·
    banxi1988 · 2013-08-30 10:02:56 +08:00 · 3462 次点击
    这是一个创建于 4108 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前是这样处理的。
    {
    "ok":false,
    "errors":[
    {"error":"错误描述","error_code":1314},
    ]
    }
    这里有一个问题就是,有多个错误的时候,这样处理自然没有问题,
    但是只是一个错误的时候。
    显然:
    {
    "ok":false,
    "error":"blalal"
    "error_code":1314
    }

    如果两种都用的话,多了一种情况来,我纠结于,是保持单一的错误结构呢?
    还是委屈求全两种都用(这样使用我的接口的人,处理错误又要多一个判断了)
    两种都用的一个好处是,如果只有一个错误项时不用再麻烦去构造一个list了。
    (虽然在构造list好像是挺方便的。)
    12 条回复    1970-01-01 08:00:00 +08:00
    sharmy
        1
    sharmy  
       2013-08-30 11:00:43 +08:00
    {"status":10000,"msg":"mission complete!"}
    cnxh
        2
    cnxh  
       2013-08-30 11:40:11 +08:00
    @sharmy 还可以加个 data
    pright
        3
    pright  
       2013-08-30 12:06:50 +08:00   ❤️ 1
    两种同时提供就好了,参看google的json风格指南(http://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml)
    {
    "error":{
    "code": 404
    "message": "File Not Found",
    "errors": [{"message": "File Not Found"}]
    }
    }
    tonyzzp
        4
    tonyzzp  
       2013-08-30 12:45:39 +08:00
    还是统一用第一种好,不要搞不一样的,用接口的人判断起来感觉很丑的。

    另外,会有多个错误原因吗?
    gkiwi
        5
    gkiwi  
       2013-08-30 13:01:18 +08:00
    建议只用第一种.
    ---
    很多时候程序问题,都会归结为 a开发维护难度和 b性能的问题.
    比如说你用只用第一种,这个时候开发维护起来比较方便,但是可能每次都需要多创建一个list,你会觉得没有这个必要啊,会不会影响性能啊?(本题中没啥影响,但是在有些比较中是会有消耗资源各种问题的)
    如果两种都用,能够解决你的list的犹豫,但是调用你接口的人维护起来就要多写代码,如果有10个人(部门)调用你的接口,可能就需要10次特殊处理!!

    各有利弊,但是本人更倾向于只使用第一种,让开发维护起来爽才人性化!!

    ps:我就想起来写java时候,同事老跟我讲代码复用,用一个大函数干N多事情,大多数我都认同,但是有时候为了一点复用,要多写N多代码显然是不值得的.
    z4none
        6
    z4none  
       2013-08-30 13:36:40 +08:00
    如果有必要返回多个错误, 那么统一用第一种
    构造 list 这种事情 封装一下就好了, 一点也不麻烦
    banxi1988
        7
    banxi1988  
    OP
       2013-08-30 14:59:56 +08:00
    @tonyzzp 一般提交表单的时候,就会有多个错误项了,如邮箱地址格式错误,密码太短了。。等等。
    banxi1988
        8
    banxi1988  
    OP
       2013-08-30 15:37:45 +08:00
    @pright 早知道有这份指南就好了,很不错。正在学习中,。。
    tonyzzp
        9
    tonyzzp  
       2013-08-30 18:09:44 +08:00
    @banxi1988 你这一下提醒了我。有些设计很二的表单,提交时返回一个错误,改完了又返回一个。。反反复复很折腾人。。关键表单还不是ajax做的。
    tonyzzp
        10
    tonyzzp  
       2013-08-30 18:10:15 +08:00
    @tonyzzp 所以说一次返回多个错误还是有用的。 弱弱问一句,回复内容可以编辑吗。。
    minowu
        11
    minowu  
       2013-08-30 18:18:44 +08:00
    // statusCode: 404
    ['Error1', 'Error2']
    minowu
        12
    minowu  
       2013-08-30 18:28:22 +08:00
    // http statusCode: 400 Bad Request
    ["不存在用户名", "电子邮件地址错误"]


    我是这样设计的,但是刚刚看到google的json风格指南,好好研究这个,能直接用google的指南就直接用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5720 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:33 · PVG 11:33 · LAX 19:33 · JFK 22:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.