php – 实现移动应用程序Web服务的标准方法

我是一名 PHP开发人员,需要为移动应用程序开发人员实现Web服务,以共享帖子,喜欢等数据.

实施此类Web服务的最佳方式是什么?这样的东西有标准吗?

目前我输出带有消息,内容等的JSON.

我的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客户端都应该处理此错误情况.有关详细信息,请参阅平台手册,或告诉我们有关您的目标移动平台的更多信息.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...