一种接口统一返回值的设计方法

应用中经常会涉及到server和client的交互,目前比较流行的是基于json格式的数据交互。但是json只是消息的格式,其中的内容还需要设计。当接口很多的时候,保持返回值格式统一很重要,因为返回值格式一致,客户端才能相应地做统一的处理

以前有一个产品使用的接口格式还不错,所以也继续带到现在的产品中使用,格式类似:

{
    "code":0 ,
    "result":{
        exist:true ,
        count:3
    }
}

或者:

{
    "code":1 ,
    "error":{
        errorCode:1003453 ,
        errorMsg:"database error"
    }
}

响应分为2种情况,正确响应和异常响应。正确响应的code值是0,附带result字段包含响应的详细信息;异常响应的code值是1,附带error字段包含详细的错误信息。result里面具体的内容是接口自定义的

关键是,如何区分“正常响应”和“异常响应”,项目组应该有统一的认识。只要server端的接口,正确地响应了业务,就算是正常响应。例如,对于“该手机号是否允许注册”这个查询接口,“允许注册”以及“该手机号已经被注册”,都应该算是“正确响应”,code值都是0,具体的判断在result里区分;“服务器500错误”以及“查询失败”,这些才是“异常响应”,code值是1,具体的错误信息在error里区分

关键就是,code只应该表示调用是否成功,不应该包含业务含义。不能用code是0还是1来区分用户是否已存在,只能用来表示这次查询是否成功。否则的话,像上面这个接口,如果用code = 1来表示用户不存在,那像网络错误,500错误就只能依赖errorCode来区分了,逻辑会很不清晰

只要所有的接口都遵循这个规则,那么在server端和client端就都可以写一个独立的组件,根据这个规则来包装接口数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值