为了方便开发者调用calfbbs中提供的api接口,我们在类中实现api调用的方法 参考:app/mode/ApiModel.php文件 调用方法: ~~~ namespace App\model; use App\model\ApiModel; class PostModel extends ApiModel { //使用get方法请求api $data=$this->get(url("api/post/getPostList"),$where); //使用post方法请求api $data = $this->post(url("api/post/addPost"), $_POST); } ~~~ 关于url是calfbb框架提供一个内置函数,用来生成完整url请求路径 ~~~ 示例: url('app/index/index',"id=1&name=2") /*另外一种传参 url('app/index/index',['id'=>1,'name'=2])*/ 普通模式下输出: http://test.calfbb.com/index.php?m=app&c=index&a=index&id=1&name=2 伪静态模式下输出 http://test.calfbb.com/index.php/app/index/index/id/1/name/2.html ~~~ 调用api的模式分为两种,本地开发模式及远程开发模式: 配置在应用的config.php文件下,参考根目录/app/config.php文件配置 ~~~ <?php /** * @package 插件应用配置文件 * @author calfbbs技术团队 * Date: 2017/10/13 * Time: 上午11:53 */ return array( //应用独立配置 'APPTOKEN'=>'201712061020',//api应用token 'REQUEST_API'=>'local',// 请求接口方式 local 本地请求 curl 跨域请求,默认 local ); ~~~ 说明:默认是local开发模式,既系统引擎会自动将url获取的完整路径进行解析到对应的模块及方法下,如: ~~~ $this->get(url("api/user/getQuestions")); 完整路径:http://test.calfbb.com/index.php/api/user/getQuestions 对应的方法:在/addons/api/User.php->getQuestions方法 ~~~ 如果是远程开发模式: ~~~ <?php /** * @package 插件应用配置文件 * @author calfbbs技术团队 * Date: 2017/10/13 * Time: 上午11:53 */ return array( //应用独立配置 'APPTOKEN'=>'201712061020',//api应用token 'REQUEST_API'=>'curl',// 请求接口方式 local 本地请求 curl 跨域请求,默认 local ); ~~~ 系统会调用php的curl扩展,使用http|https协议请求api,这种模式下一般用于分布式应用,如api应用跟app应用没有在一个服务器上。