我是一名
PHP开发人员,需要为移动应用程序开发人员实现Web服务,以共享帖子,喜欢等数据.
实施此类Web服务的最佳方式是什么?这样的东西有标准吗?
我的app开发人员的主要问题是关于错误消息.我建议返回一个包含错误代码和消息的数组来显示:
$result = array( 'status' => false,// because registration Failed // if registration succeed then would be true 'errors' => array( array( 'code' => '1','message' => 'Password is not strong enough!',),array( 'code' => '2','message' => 'Password and password confirmation do not match!',array( 'code' => '3','message' => 'This email address has been used!',);
但他们建议将所有错误消息作为字符串返回,并且他们只使用status参数,如果它是false则会显示消息,如下所示:
$result = array( 'status' => false,'message' => 'Password is not strong enough!' . PHP_EOL . 'Password and password confirmation do not match!' . PHP_EOL . 'This email address has been used!',);
提前致谢
解决方法
Dozens of web-services protocols exist,最着名的一个是(IMO)SOAP.
Some of them本身由PHP支持,其中大多数都有可用的开源实现,所有这些都可能对简单的需求有些过分.
对于基本的错误处理机制,简单的5xx HTTP status code就足够了:
<?PHP define('HTTP_CUSTOM_ERROR_CODE',599); define('HTTP_CUSTOM_ERROR_REASON','Something wrong is going on'); if( somethingWrong() ) { header( sprintf('%s %s %s',$_SERVER['SERVER_PROTOCOL'],HTTP_CUSTOM_ERROR_CODE,HTTP_CUSTOM_ERROR_REASON ),true,HTTP_CUSTOM_ERROR_CODE ); // sends HTTP header "HTTP/1.1 599 Something wrong is going on" echo $errorMessage; // or echo json_encode( $structuredErrorData ); die(); } else { echo json_encode( $response ); }
根据HTTP协议规范,任何HTTP客户端都应该处理此错误情况.有关详细信息,请参阅平台手册,或告诉我们有关您的目标移动平台的更多信息.