苹果CMS自定义API接口二次开发两种实现方法
发布时间:2024-11-21共14人阅读
苹果CMS自带的默认API接口功能有限,无法满足个性化数据调取、前端对接、第三方联动等二次开发需求。可通过两种稳定可行的方式自定义开发API接口,分别为新增控制器接口、模板PHP函数接口,适配不同开发场景,可灵活输出影视分类、列表等JSON数据。
一、新增控制器方式开发API接口
该方式基于TP5框架原生开发,接口稳定性强、适配性高,适合长期使用、正式对接的自定义接口场景。文件创建需遵循框架规范,控制器文件名首字母必须大写。
1. 创建自定义控制器文件
在站点目录 application/api/controller/ 下新建 Test.php 控制器文件,基础架构代码如下:
<?php
namespace appapicontroller;
use thinkController;
use thinkCache;
class Test extends Base
{
var $_param;
public function __construct()
{
parent::__construct();
$this->_param = $this->request->param();
}
public function index()
{
$data = [];
$list = ['code'=>0,'data'=>$data];
return json($list);
}
}2. 接入CMS影视数据查询逻辑
基础控制器搭建完成后,写入数据查询代码,实现按分类、页码、数量调取影视资源,支持GET、POST请求方式:
$lp = $this->request->param();//接收请求参数
$where = [];
$where['type_id']= $lp['type'];//绑定分类ID筛选条件
$order ='vod_time desc';//按资源时间倒序排序
$page = $lp['page'];//获取请求页码
$limit = $lp['num'];//获取单页展示数量
$data = model('Vod')->listData($where,$order,$page,$limit);
$list = ['code'=>0,'data'=>$data];
return json($list);3. 接口访问地址
文件保存后可直接通过站点URL访问接口,正常返回JSON格式数据:
http://www.xxx.com/api.php/test?type=1&page=1&num=20
二、模板自定义PHP函数搭建API接口
该方式无需修改程序核心目录,依托模板文件实现接口开发,操作简单、无需适配框架规则,适合临时接口开发、轻量数据调用场景。
1. 引入自定义函数文件
打开全局公共模板文件 include.html,添加代码引入自定义PHP函数文件:
{php}require MAC_ROOT_TEMPLATE . 'php/function.php'{/php}2. 创建自定义函数文件
在模板根目录新建 php 文件夹,创建 function.php,写入影视数据调取函数:
<?php
function vod(){
$param = input();
$param['page'] = intval($param['page']) < 1 ? 1 : intval($param['page']);
$param['limit'] = intval($param['limit']) < 20 ? 20 : intval($param['limit']);
$where = [];
$where['vod_type'] = $param['type'];
$order ='vod_time desc';//资源排序规则
$res = model('Vod')->listData($where, $order, $param['page'], $param['limit']);
return json($res['list']);
};3. 创建接口访问模板
在模板label目录下新建 api.html 接口文件,引入函数并执行调用:
{include file="public/include"}
{php}require MAC_ROOT_TEMPLATE . 'php/function.php'{/php}
{:vod()}4. 接口访问地址
保存文件后通过前端URL即可访问自定义数据接口:
http://www.xxx.com/index.php/label/api.html?type=1&page=1&limit=20
三、两种开发方式适用场景对比
控制器接口:原生框架支持,运行稳定、安全性高,适合正式项目对接、长期使用的标准化API接口。
模板函数接口:无需改动程序核心,部署便捷、修改灵活,适合临时数据调用、轻量化二次开发场景。
