首页 > 主页 > tongfuapi
日志:17 评论:0
北京, 东城
TFAPI的WebService的返回值设计技巧

返回值类型

  • 含错误码和错误信息的返回值,我们需要使用 $this->getResult($errcode, $errmsg) 来返回错误信息

  • 数组类型数据的返回值,我们可以直接返回数组 array

  • 布尔值类型数据的返回值,我们可以直接返回true/false

  • 字符串类似数据的返回值,我们可以直接返回string或者空或者null值

  • 数字类型数据的返回值,我们可以直接返回numeric或者null值

无错误码的数据类型返回值

一般来说无错误码的情况下我们都喜欢直接返回数据,但是这样的情况下如果数据返回了null,而我们就不方便排除错误了。

如果返回类型是null或者空的情况,有可能是数据本身不存在,也可能是数据本身存储的就是null或者空,当然也有可能是网络问题或服务器故障导致的WebService没有返回任何数据结果“看起来”返回了是空值,这种情况下我们就不方便判断问题了。

最好的做法是,我们同样使用 $this->getResult($errcode, $errmsg, $returnData) 来返回我们的数据,这样如果出现了完全为空的情况则一定是服务器故障了,否则返回的一定是一个数组(对象),下面是一个示例。

// 一般情况下我们返回数组数据
$ret = tfapiWebServiceCtrlr::$objArr['test']->GetInfo(1);

// 正常的数据结构是 Array( 'id'=>1, 'name'=>"text" )
print_r($ret);

// 当出现网络错误时候就什么都没有了。。。

// 使用 getResult 方法返回数组数据
$retArr = tfapiWebServiceCtrlr::$objArr['test']->GetInfo(1);

// 正常的数据结构是 Array( 'errcode'=>0, 'errmsg'=>"", 'id'=>1, 'name'=>"text" )
print_r($retArr);

// 当出现网络错误时候的数据结构是 Array( 'errcode'=>100044, 'errmsg'=>"The method got a empty response" )

// 如果我们返回的数据类似是非数组类型,那么返回的数据结构是这样的
// 布尔值 Array( 'errcode'=>0, 'errmsg'=>"", 'result'=>true )// 字符串 Array( 'errcode'=>0, 'errmsg'=>"", 'result'=>"result string" )// 数字 Array( 'errcode'=>0, 'errmsg'=>"", 'result'=>12345 )// 空值 Array( 'errcode'=>1, 'errmsg'=>"some error occurred", 'result'=>"" )// null值 Array( 'errcode'=>1, 'errmsg'=>"ome error occurred", 'result'=>null )

总结

总结来说,当函数包含错误码和错误消息的情况下则必须使用 $this->getResult 方法返回数据,而当函数不包含错误码和错误消息的情况下则可以直接返回数据,但是我们建议还是使用 $this->getResult 更好!