请问查询出来的数据返回给客户端怎样做统一处理呀?
示例一:
{
"success" : true,
"data" : {
"type" : "first"
},
"errCode" : "SUCCESS",
"errMsg" : "请求成功",
"sysTime" : 1585546735699
}
需要在数据外层再多包裹一层统一的自定义状态码和错误信息。客户端可以根据状态码来渲染数据或者弹出后台的错误信息
示例二:
mysql表中为空的字段,返回给客户端是null。比如说有个name字段是varchar,为空返回给客户端是null。客户端需要把name展示在页面上。如果客户端是弱类型语言,直接接口里面的读取到的null展示到页面就行。如果客户端是强类型语言,本来name在客户端应该是字符串类型,结果返回的是null,在客户端那边就会直接抛错,出现页面卡死或者白屏。这是我在工作中实际碰到过的,做flutter开发,使用的是dart强类型语言,客户端会拿到接口里面的json字符串数据,转换成dart的实体类,然后通过实体类把json字符串转换为dart对象,在页面中使用。如果后台把本来应该是String类型的返回成null了,就会直接导致实体类解析数据异常,那个接口就报错了。
Text(data.openid),这个时候openid为null。
flutter的Text文本控件第一个参数,必须是String类型,不能为null,如果直接把接口的字段填进去,就会抛异常报错。让客户端处理又不实际,因为客户端不知道什么字段可能会出异常,而且也没有办法做统一处理,因为客户端拿到的是json字符串,不知道这个字段本身到底应该是什么类型,没办法做处理。
实际上客户端应该拿到的是
{
"uid": 1,
"openid": "",
"phone": "",
"nickname":"",
"email": "",
"uname": "",
"sex": 0,
"createTime":"",
"updateTime": ""
}
解决这种情况,我能想到两种方案,一种是在数据库设计的时候,设计默认值,还有一种是代码数据返回的时候,把null重新替换成该字段的字段类型所对应的默认值。比如说是String就返回“”,是int就返回0,是double就返回0.00,请问第二种情况怎么处理呀?