第一步先开接口:
Route::get('api/:ver/init', 'api/:ver.index/init');
第二步在index.php中编写逻辑,方法是根据apptype来查询最近的一条的记录,最后返回所有的数据,如果有强制更新设置那么则加个判断就可以了:
/** * 客户端初始化接口 * 1.检测APP是否需要升级 */ public function init(){ //app_type 去ent_version 查询 $appType = $this->headers['app_type']; $version = model('Version')->getLastVersionByAppType($appType); if (empty($version)){ return new ApiException('error', 400); } if ($version->version >$appType){ $version->is_update = 1; }else{ $version->is_update = 0; //0不更新 1需要更新 } return show(config('code.success'), 'Ok', $version, 200); }
model里面加个getLastVersionByAppType方法
/** * 通过apptype获取最后一条版本内容 * @param string $appType */ public function getLastVersionByAppType($appType = ''){ $data =[ 'status' => 1, 'app_type' =>$appType, ]; $order = [ 'id' => 'desc', ]; $result = $this->where($data) ->order($order) ->find(); return $result; }
用postman测试最新正常数据:
{
"status": 1,
"message": "Ok",
"data": {
"id": 2,
"app_type": "android",
"version": 3,
"version_code": "2.1",
"is_force": 0,
"apk_url": "x.com/1/4.html",
"upgrade_point": "1.修复bug",
"status": 1,
"create_time": "1970-01-01 08:00:00",
"update_time": "1970-01-01 08:00:00",
"is_update": 1
}
}
可以在返回结果的前面记录下用户的基本信息,用于统计,就是简单的数据库插入操作了