正纠结于返回错误的格式 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
banxi1988
V2EX    程序员

正纠结于返回错误的格式

  •  
  •   banxi1988
    banxi1988 2013 年 8 月 30 日 4006 次点击
    这是一个创建于 4611 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前是这样处理的。
    {
    "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 年 8 月 30 日
    {"status":10000,"msg":"mission complete!"}
    cnxh
        2
    cnxh  
       
    @sharmy 还可以加个 data
    pright
        3
    pright  
       2013 年 8 月 30 日   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 年 8 月 30 日
    还是统一用第一种好,不要搞不一样的,用接口的人判断起来感觉很丑的。

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

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

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


    我是这样设计的,但是刚刚看到google的json风格指南,好好研究这个,能直接用google的指南就直接用。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4074 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 68ms UTC 00:57 PVG 08:57 LAX 17:57 JFK 20:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86