正纠结于返回错误的格式

2013-08-30 10:02:56 +08:00
 banxi1988
目前是这样处理的。
{
"ok":false,
"errors":[
{"error":"错误描述","error_code":1314},
]
}
这里有一个问题就是,有多个错误的时候,这样处理自然没有问题,
但是只是一个错误的时候。
显然:
{
"ok":false,
"error":"blalal"
"error_code":1314
}

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

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

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

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


我是这样设计的,但是刚刚看到google的json风格指南,好好研究这个,能直接用google的指南就直接用。

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

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

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

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

© 2021 V2EX