摘要
接口数据结构的约束,有利于提高开发效率,
而在开发中,前后端的理解,导致接口回调异常混乱,故想以此做下记录,探讨和分享
前提,个人不建议用http的code来判断业务代码,容易混淆。
什么是成功,什么是失败
成功,失败一般分为以下两种
1.网络
网络请求成功是由http code 200 来做判断, 一般情况下 我们都是采用网络框架来处理的,所以这个不需要我们担心和处理
2.业务
网络成功后,就开始判断我们业务逻辑了。 我们的业务无非就4种,增 删 改 查
增: 成功: 数据添加成功 失败:添加失败
删: 成功: 数据删除成功 失败:删除失败
改: 成功: 数据改变成功 失败:修改失败
查: 成功: 数据查询成功 失败:查询失败
好像说了当没说是吧,那我们过会儿字回头理解
按对接的接口格式,我们项目一般都是 code data msg 这样的
{
"code":1,//1 成功 非1 失败
"msg":"请求成功",
"data":Any
}
那么上面4种请求,返回格式是怎么样的呢
2.1 增 删 改
这三个都是提交参数,进行数据变动的接口 这种的一般不需要要有回调数据 后端同学只需要告知前端
{
"code":1,
"msg":"嘿 兄dei 数据为你处理好了哦"
}
或者说
{
"code":0,
"msg":"专业点,你参数出错了。"
}
看到没,都不需要data的,若后端非要返回data 字段, 那么这样返回也是可以的
{
"code":1,
"msg":"嘿 兄dei 数据为你处理好了哦"
"data":null
}
//或者
{
"code":0,
"msg":"专业点,你参数出错了。"
"data":null
}
就是这样简单 其他情况。当更改数据的接口 需要返回数据的时候。 如我更改用户基本信息,需要接口返回数据来替换本地用户信息。 那么接口格式就如下
{
"code":1,
"msg":"头像更新成功"
"data":{
"avatar":"http:\\xx.xxx.xxx\user_avatar"
}
}
//或者失败
{
"code":0,
"msg":"图片内容涉黄,不合规,请更改"
}
//或者失败
{
"code":0,
"msg":"图片内容涉黄,不合规,请更改"
"data":null
}
2.2 查
这里我得再分两种情况
1.查对象(查单个数据) 2 查集合(查多个数据,集合类,列表)
2.2.1 查对象(查单个数据)
成功: 对象数据查询且有数据,代表查询成功 失败:无数据,或者条件不足查询不到
//成功
{
"code":1,
"msg":"查询成功"
"data":{
"name":"bobozhu",
"sex":"男"
}
}
//失败
{
"code":0,
"msg":"无数据"
}
//失败
{
"code":0,
"msg":"条件不足"
}
千万别有下面这种错误的格式
{
"code":1,
"msg":"查询成功"
"data":null
}
2.2.2查集合(查多个数据,集合类,列表)
成功:对象数据查询成功 失败:条件不足
//成功 有数据
{
"code":1,
"msg":"查询好友列表成功"
"data":[{
"name":"bobozhu",
"sex":"男"
}]
}
//成功 无数据
{
"code":1,
"msg":"查询好友列表成功"
"data":[]
}
//失败
{
"code":0,
"msg":"参数不对"
}
//失败
{
"code":0,
"msg":"条件不足",
"data":null,
}
一边不建议用这种格式,除非提前沟通好(算了别沟通,直接拒绝这种格式)
{
"code":1,
"msg":"查询成功"
"data":null
}
总结
1.一个接口,同一个字段不能拥有多种数据类型。(null 和 object array 算一个类型)
2.null代表错误,异常
欢迎大家留言评论并分享你的看法