如何优雅的标准化处理接口返回数据结构
最近一直在为第三方开发团队写接口,因为第三方团队在外地开发,所以交流基本都是靠 Teambition 和 Email 来进行沟通的,写完接口都会更新在线文档给第三方人员使用。
但,参与写接口的人员比较多,虽然有编码规约,但中间还是出现了一个小问题,正常所有的接口返回的数据结构应该都是一致的,分为公共响应数据和业务响应数据 ,示例:
{
"code": "108",
"msg": "Service Currently Unavailable",
"sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE",
"user_name": "24K大白羊",
"email": "haoliang@outlook.jp"
}
- code, msg, sign 三个参数为公共响应数据,任何接口响应数据中都必须包含着3个参数,且名称也要一模一样
- 前端在接收接口返回数据时,优先判断签名是否正确
- 次优先判断 code 的值是否为 100,如数值不等于 100 则表示有错误信息
- user_name, email 为业务响应数据,上面 2 个判断都通过后,各接口根据实际业务显示对应的值
为了更好的操控这个结构,后面做了下面的改变,这样理论上各业务模块只需要关注 data_response 里的数据就可以了。
{
"code": "20000",
"msg": "Service Currently Unavailable",
"sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE",
"data_response": {
"user_name": "24K大白羊",
"email": "haoliang@outlook.jp"
}
}
在 Laravel 中如何优雅的处理公共响应数据呢,所有的人只关注具体的值就可以,不需要重复定义上面的数据结构。也不会出现我用 msg 存错误信息,而有的人用 message 来存错误信息,其他小伙伴儿是如何处理的呢?
推荐文章: