论坛首页 Java企业应用论坛

API 返回结果设计

浏览 11586 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2015-09-14  

我现在开发的项目,是对外提供 API 接口,使用 JSON 数据格式。

现在对于返回数据的格式产生了疑惑,不确定用那种方式好些。

 

方案一:

不管执行成功还是执行失败,都返回同一数据格式的 JSON 数据:

 

执行成功时返回如下数据:
{
	"code": 0,
	"message": "用户添加成功",
	"data": {
		"id": 82,
		"name": "张三"
	}
}
执行失败时返回如下数据:
{
	"code": 500,
	"message": "用户添加失败,用户已存在",
	"data": null
}

 不管执行成功还失败,都会返回 code 值,0 代表成功,其它代表失败(不同的错误会返回不同的状态码)

 

方案二:

执行成功与执行失败返回不同的 JSON 格式数据:

执行成功返回如下代码:
{
	"id": 82,
	"name": "张三"
}
执行失败返回如下代码,并根据不同的错误返回不同的 HTTP 状态码(如:400,404,500)
{
	"code": 500,
	"message": "用户添加失败,用户已存在"
}

 执行失败返回的 JSON 数据格式是固定的,注意,执行失败时,会返回 HTTP 的不同的状态码。而 code 是详细的错误代码

 

此项目是 J2EE 项目,用哪种方案好些呢?优势又在哪里?

 

   发表时间:2015-09-16  
感觉没什么区别啊,反正接收方都要通过一个key来判断是成功还是失败吧
0 请登录后投票
   发表时间:2015-09-16  
最好是带着code,如果没有code的值,那调用方如何知道此次调用是成功还是失败?如果没有code,会增加调用方的代码,用来判断此次调用是成功还是失败,如果有code的值,那调用方只需要判断code 的值就知道此次调用是成功还是失败。
0 请登录后投票
   发表时间:2015-09-16  
返回值一定是相同的数据结构
0 请登录后投票
   发表时间:2015-09-17  
http错误码程序好像没法返回,是tomcat 写到 报头里的?

我一般定义两层
{
returncode:0,
returnmsg: 'ok',
{
   resultcode:0,
   resultmsg:'xx'
   daat:
}
}
0 请登录后投票
   发表时间:2015-09-18  
建议第一种.
0 请登录后投票
   发表时间:2015-09-20  
两个都一样
0 请登录后投票
   发表时间:2015-09-21  
最好格式一样,这样用户在调用时,不用写两套不同的代码来处理返回结果了,code必须要带上
0 请登录后投票
   发表时间:2015-09-21  
赞成第一种
0 请登录后投票
   发表时间:2015-09-21  
绝对第一种,第二种太挫了!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics