user->identity->username; $cert = fmFunc_cert_exist($username); $_FM['apiCert'] = $cert ? $cert : array(); $errorCode = 0; if($errorCode>0){ die (json_encode(array('errorcode'=>$errorCode,'msg'=>Yii::t('errorcode',$errorCode)))); } $statusSite=[ '-1'=>'禁止', '0'=>'只读访问', '1'=>'正常', ]; //接口统计 $stat = fmFunc_stat_get($username); //错误代码集合 $errorcodes = require(Yii::getAlias('@common').'/messages/zh-CN/errorcode.php'); ?>

我的Api接口

  1. 授权域名 ;
  2. IP白名单 ;
  3. 接口标识;
  4. 授权码;
  5. 站点名称;
  6. 站点ID;
  7. 站点状态;
  8. 备注;

接口统计

  1. 存入次数;
  2. 取出次数;
  3. 累计存入数据字节;
  4. 累计取出数据字节;


接口使用简易说明

注:本处主要说明本API的基础规则及一些常用的接口使用方法,更多细节可参考我们的实际使用案例(我们基于微擎开发的嗨旅行应用、小程序管理模块等。)

  1. 接口登陆
    登陆地址: https://api.hiluker.com/index.php?r=oss/login&api=
    附加表单: 登陆数据以附加url转码后的字符串拼接到登陆地址中
    $loginurl = https://api.hiluker.com/index.php?r=oss/login&api='.$_SERVER['HTTP_HOST'];
    $post = array(
        'LoginForm[username]' => 您的用户名,
        'LoginForm[password]' => 您的密码,
        'LoginForm[rememberMe]' => 1
    );
    foreach($post as $k => $v){
        $loginurl .= '&'.urlencode($k).'='.urlencode($v);
    }
                
    成功返回: 登陆成功后,系统会返回一个accesstoken,通过json_decode解码即可。(随后所有的接口通讯都需要附加该accesstoken,所以建议您对该值进行存储,可以减少不必要的登陆连接)

  2. 接口规范
    数据分类 主要分为POST数据与GET数据两类,其中部分限制约定数据必须从GET数据中取得,原则上POST进来的可以是任意类型、任意大小、任意长度的数据
    会直接被过滤掉的POST数据:这些数据会在传入时即被系统会自动过滤,不作任何保存操作
    ['id','siteid','createtime','updatetime','update_at'];
    只允许GET方式的数据:这些数据与您的接口权限也有关联,在接口权限中有直接设定的,以设定好的数据为主
    ['uniacid','platid','shopid'];

    SQL排序命令辅助sql_orders:传入方式为数组,键值顺序决定排列先后,每个元素本身也是一个数组,由排序字段及排序方式构成。DESC倒序,ASC升序
    $post['sql_orders']=array(
        "键"=>array(排序字段=》排序方式),
        "1"=>array(”displayorder“=>"desc"),
        "2"=>array(”id“=>"asc"),
        ……
    );
                
    SQL截断命令辅助sql_limits:传入方式为数组,数组内为起始位置、结束位置两个参数
    $post['sql_limits']=array(
        'start' => ($pindex-1)*$psize,
        'end' => $psize,
    );
                
    SQL搜索命令辅助searching:传入方式为searching数组,内可包含['status','deleted','keyword','filter','plat']
    $post['searching']=array(
        'status' => '',     //指定状态(数据是否启用)(0,1)(默认1)
        'deleted' => '',    //指定状态(数据是否删除)(0,1)(默认0)
        'keyword' => '',    //指定要匹配的关键词(模糊检索,用以匹配标题项)
        'filter' => array(要匹配的字段=》字段值)  //用于设定数据过滤条件,并行条件(AND),精确匹配;支持多组(数组集,要匹配的字段=》字段值)($col=>$val),字段值可以是文本字符串(单一值)或二维数组(一个字段多种取值的情况)
        'plat' => '',       //指定跨平台搜索
    );
                
    注:SQL搜索命令辅助searching内如果还传入了其他参数,将由系统统一过滤整理,用作模糊匹配的可选条件(OR)
  3. 错误代码:(客户侧可直接将接口站返回的结果打印出来查看,以下仅列出服务侧程序正确运行情况下返回的错误及提示;其他情况可直接打印结果进行查看)

  4. 标准接口
    数据归类: 本站接口数据划分为三个层级——model(模型数据)=>instance(实例数据)=>content(内容数据)
    存取动作: 数据操作共三种——get(取数据列表)=>detail(取某组数据详情)=>save(保存数据)
    参数约定: (1) 控制器动作参数ac,action的简写,对应数据的层级归类,如 model或house或room。传入方式:GET(仅支持GET方法); (2) 控制器动作附加细分操作参数op,operation的简写,对应相应数据的操作,如 index或unused或deleted或all等。传入方式:GET(仅支持GET方法);
    通常情况下,ac参数均只需用model或instance或content即可;部分接口模型(如realty房产模型)可能略有不同
    op参数说明:'index':    取未删除、可用状态的数据;'unused':  取未删除、不可用状态的数据;'deleted':取已删除数据; 'all':取未删除数据; 
    返回结果:
    对于get类的动作,返回数组,数组结构如下(仅为参考,实际可打印结果核实)
    $return['errorcode'] = $errorCode;  //正常情况下为0
    $return['msg'] = Yii::t('errorcode',$errorCode);    //返回的消息(接口报错时会使用到)
    $return['data'] = isset($record) ? $record : '';        //用户侧应获得的数据
    $return['timeused'] = getMillisecond() - $START_TIME;   //接口耗时
    $return['total'] = isset($count) ? $count : 1;//总记录数
    $return['bytes'] = strlen(json_encode($return['data']));//长度字节统计
                
    对于detail类的动作,返回数组,结构如下:
    $return['errorcode'] = $errorCode;
    $return['msg'] = Yii::t('errorcode',$errorCode);
    $return['data'] = isset($record) ? $record : '';
    $return['timeused'] = getMillisecond() - $START_TIME;
    $return['bytes'] = strlen(json_encode($return['data']));//长度字节统计
                
    对于save类的动作,返回数组,结构如下:
    $return['errorcode'] = $errorCode;
    $return['msg'] = Yii::t('errorcode',$errorCode);
    $return['data'] = isset($record) ? $record : '';
    $return['timeused'] = getMillisecond() - $START_TIME;
    $return['bytes'] = strlen(json_encode($return['data']));//长度字节统计
                

  5. 接口示范:(以房产模型为例)
    使用模型: realty
    所取数据: 客户侧指定的房产模型的下的楼盘实例(house)列表
    基础接口: https://api.hiluker.com/index.php?r=realty/get
    1. 构建身份验证GET参数
      $getData = array();
      $urlcondition1 = ’‘;    //要附加到基础接口地址上的GET参数组
      $getData['appid'] = $server['username'];    //接口用户名
      $getData['sceret'] = $server['code'];   //接口密码
      $getData['accesstoken'] = $AccessToken; //接口TOKEN
      foreach($getData as $k => $v){
          $urlcondition1 .= '&'. urlencode($k).'='. urlencode($v);
      }
                          
    2. 构建动作、操作等GET参数
      $getData = array();
      $urlcondition2 = ’‘;    //要附加到基础接口地址上的GET参数组
      $getData['platid'] = '';
      $getData['uniacid'] = '';
      $getData['shopid'] = '';
      $getData['ac'] = 'house';
      $getData['op'] = 'all';
      foreach($getData as $k => $v){
          $urlcondition2 .= '&'. urlencode($k).'='. urlencode($v);
      }
                          
    3. 构建查询/筛选等POST参数
      $postData = array();
      $postData['s_sn'] = $s_sn;
      $postData['searching']['deleted'] = ''; //1或0;可选项,1为仅取用已删除数据
      $postData['searching']['keyword'] = ";  //可选项,关键词
      $postData['searching']['status'] = ''; //1或0;可选项,1为仅取用已生效中的数据
      $postData['searching']['plat'] = '';    //可选项,跨平台时使用
      $postData['sql_limits'] = array(
          'start' => 起始页位置,
          'end' => 结束页位置,
      );
      //处理POST数据
      foreach($postData as $k => &$v){
          $v = json_encode($v);   //(POST的数据各键值需是string文本类型)
      }
                          
    4. 拼接网址,POST数据发送请求