1.要注意判断接口返回的数据是否为空;
*****
2.注意返回数据时,有数据和没有数据返回的数据格式要一致;
*****
3.APP返回的参数的数量必须一样 不能有的数据有这个字段另一个没有,否则容易导致客户端崩溃;
*****
4.APP的接口数据循环的时候不能有空,否则容易崩溃;
*****
5.尽量不要让IOS传json格式的数据给PHP,因为PHP和IOS解析出来可能会有差异;
*****
6.APP客户端读取http图片的时候,如果该图片是由http301强制跳转https,APP客户端可能会崩溃,无法获取图片信息(IOS测试会崩)
*****
7.如果进入APP以后,点击的跳转如果不正确,有可能是启动图的问题(客户端启动图的URL没有删除)。
*****
8. **请求第三方接口,如果对方宕机,就不会返回json数据。所以在请求第三方接口的时候需要判断是否是json,然后再解析。**
代码如下:
~~~
//判断是否是JSON
public function is_json($string) {
@json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
~~~
~~~
//调用判断是否是JSON格式
if($this->is_json($result))
{
$arr = json_decode($arr[0],true);
if(!empty($arr))
{
if ($arr[ 'rc' ] == '200') {
$edata['msg'] = '充值成功';
$edata['data'] = (object)[];
$edata['status']= 0;
sendjson($edata);
} else {
$this->ErrorCode($arr[ 'rc' ]?$arr[ 'rc' ]:0,$arr[ 'msg' ]);
}
}
sendjson(['msg'=>'数据通讯失败','data'=>(object)[],'status'=>7121]);
}
~~~
**9.把错误信息写到一个配置文件里面。**
类似于下面这种:
~~~
return [
//通用模块 错误信息 10
'COMMON' => [
'PARAMS_REQUIRED' => [
'code' => '10001',
'message' => '缺少必要参数',
],
'PARAMS_INVALID' => [
'code' => '10002',
'message' => ':attribute不在有效范围',
]
],
];
~~~
*****
**10.请求成功返回的方法:**
请求方式:
```
return $this->success();
```
~~~
/**
*API请求结果为成功后返回调用
* @param $data 返回内容
* @return mixed
*/
public function success($data = [])
{
$result = ['status' => 'ok'];
if (!empty($data)) {
$result['data'] = $data;
}
return $this->response->array($result);
}
~~~
*****
**11.请求错误返回的方法:**
请求方式:
```
return $this->error('COMMON.DB_ERROR');
```
~~~
/**
* API请求结果为成功后返回调用
* @param $data 返回内容
* @return mixed
*/
public function error ($data = [])
{
$result = ['status' => 'error'];
然后根据错误码找到错误的信息提示。如果错误信息没在配置文件里,可以返回个固定的。比如系统错误之类的。
$aError['data'] = $data['data'];
$aError['msg'] = $data['msg'];
$result['error'] = $aError;
return $this->response->array($result);
}
~~~
*****