API接口开发:API接口
自定义数据接口
cms提供直接输出、PHP代码体两种方便开发者使用的数据输出接口。
1、直接输出
本类型是将后台录入的数据格式原样输出到客户端
返回格式为:
array(3) { ["code"]=> int(1) ["msg"]=> string(2) "ok" ["data"]=> string(7) "test123" }
2、JSON数组
本类型数据内容必须是一个json格式的数组字符串
返回格式为:
array(3) { ["code"]=> int(1) ["msg"]=> string(2) "ok" ["data"]=> array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" } }
3、php执行代码
https://www.xunruicms.com/doc/1132.html
4、模板查询标签
本类型需要有CMS模板标签的使用经验,直接写标签代码返回结果
例如调用news模块全部数据:
{module module=news} 或者 {list action=module module=news}
模板标签只能写一段,不能写多段
通过以上的list查询方法可调用循环标签的全部数据,当然你可以对结果进行格式化处理,使用回调方法。
5、自定义模板标签
本类型需要有CMS模板标签的使用经验,直接写标签代码返回结果,区别于(4),本类型可以直接在标签里面写赋值方法和格式化显示,不需要写回调方法
这里循环出news模块的全部数据,只显示id,title,再把thumb转换为url地址。
也可以这样写,原理是将输出变量赋值给$api数组:
{module module=news} {php $api[$key]['id']=$t['id'];} {php $api[$key]['title']=$t['title'];} {php $api[$key]['thumb']=dr_thumb($t['thumb'], 200,200);} {/module}
以上语法格式为:
6、自定义PHP代码
本类型需要有PHP的开发使用经验,直接将php业务代码写进去
$api变量为直接返回,例如:
$api = '我的自定义返回变量值';
返回截图如下:
也可以自定义强制返回
$api = '我的自定义返回变量值'; \Phpcmf\Service::C()->_json(1, '我的返回脚本成功了', $api); // 成功写法 \Phpcmf\Service::C()->_json(0, '我的返回脚本失败了'); // 失败写法
任意页面查询API接口
宸逸CMS框架支持读取任何页面的数据接口,接口格式如下:
/index.php?appid=[APPID]&appsecret=[appsecret]&[任意页面地址参数]
视频操作教程:
一、举例说明
例如新闻详情页面的默认地址是:
http://www.demo.com/index.php?s=demo&c=show&id=110
那么,我们可以用《任意页面接口》读取本页面的数据:
http://www.demo.com/index.php?appid=1&appsecret=FCAD3481CFB2D55&s=demo&c=show&id=110
返回全部数据为:
二、自定义回调方法
如上例所示,返回的结果实在太多了,不利于APP的传输,那么CMS支持自定义回调方法(定义方法参考《回调方法》章节),参数格式如下:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_call_function=[回调方法名称]&[任意页面地址参数]
三、任意页面接口的其他例子
1、模块内容列表或搜索
/index.php?appid=[APPID]&appsecret=[appsecret]&s=[模块目录]&c=search&pagesize=10&page=1
2、模块内容详情页面
/index.php?appid=[APPID]&appsecret=[appsecret]&s=[模块目录]&c=show&id=[文章内容]id
3、模块内容评论页面列表
/index.php?appid=[APPID]&appsecret=[appsecret]&s=[模块目录]&c=comment&id=[文章内容]id
4、模块栏目列表页面
/index.php?appid=[APPID]&appsecret=[appsecret]&s=[模块目录]&c=category&id=[栏目id号]
四、查询出来的数据有问题怎么排查?
方式1、通过接口访问,(去掉回调函数参数api_call_function)试试变量是否出了,如果不出来说明数据库无这个字段
方式2、通过接口访问,(加上回调函数参数api_call_function=你的函数名称)试试变量是否出了,如果不出来说明回调函数写法有问题
任意页面的数据提交接口
数据提交接口用于客户端将数据提交至服务端,或者修改已有的服务端数据。
适用于数据提交的请求,例如:用户登录、用户注册、发布文章、发布表单内容等
一、请求地址
1、需要登录时请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录授权码]&api_auth_uid=[用户id]&[任意页面参数]
一般用于用户中心的操作,如修改资料、修改密码、上传头像、发布文章等
2、不需要登录时请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&[任意页面参数]
一般用于不需要登录的地方,如匿名提交表单、匿名评论等
二、请求参数
请求参数必须和电脑端保持一致,开发建议首先抓取电脑端修改或提交数据时的POST数据,那么移动端提交时也要满足你抓取的POST数据格式,必须保持一致。
例如,我不知道用户注册时的表单参数怎么办?
在不知道请求参数的情况下,可以利用这个方法来获取请求参数的data字段格式
1、如上图,打开注册页面的电脑界面
2、如上图,开启google浏览器的开发者模式,并切换到Network选项中
3、如上图,在注册表单里面,随便输入一些,不填写验证码(目的是不让他提交,我要看请求参数)
4、点提交按钮,他会提示错误,并停留在这个页面上
5、你可以在开发者模式里面的Network中看到FormData的全部请求参数了!!!
终端程序需要将请求参数按照图中的结构组装成【数组(一定要是数组)】来提交到宸逸CMS。
例如
微信小程序的提交参数语法:
var postParams = "is_ajax=1" +"&data[title]=标题" +"&data[content]=内容内容" // 内容 +"&data[thumb]=999" // 缩略图id +"&catid=11";// 栏目11 wx.request({ url: "提交地址api", data: postParams, method: 'post', header: { 'Content-Type': 'application/x-www-form-urlencoded', }, .....
UniApp的提交参数语法:
uni.request({ method: 'POST', url: "api提交地址", //接口地址。 data: 'is_ajax=1&data[title]=标题&data[content]=内容&catid=11', header: { 'content-type': 'application/x-www-form-urlencoded' //自定义请求头信息 }, ......
POST请求格式:https://www.xunruicms.com/doc/1134.html
三、任意页面的相关例子
1、修改密码
请求地址: /index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录授权码]&api_auth_uid=[用户id]&s=member&c=account&m=password 请求参数: is_ajax=1&data[password]=原密码&data[password2]=新密码&data[password3]=再次新密码 返回结果: 修密码接口需要返回新的[登录appsecret],开发者可以重新做本地存储,也可以让用户重新登录。
2、发布文章
请求地址: /index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录授权码]&api_auth_uid=[用户id]&s=member&app=news&c=home&m=add 请求参数: is_ajax=1&data[title]=... 这里面的参数一定要和电脑页面的POST参数保持一致
3、表单提交,例如test表单
请求地址: /index.php?appid=[APPID]&appsecret=[appsecret]&s=form&c=test&m=post 如果需要登录才能提交表单,可以加上上面的api参数 请求参数: is_ajax=1&data[title]=... 这里面的参数一定要和电脑页面的POST参数保持一致
4、发布文章时缩略图文件如何上传
首先要通过《文件上传接口》把文件上传到服务器,并返回id号;
再把id号存储到发布文章的POST表单值中,格式一定要和pc段一致。
5、用户登录
https://www.xunruicms.com/doc/411.html
6、模块评论发布
请求地址: /index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录授权码]&api_auth_uid=[用户id]&s=[模块目录]&c=comment&m=post&id=[内容id] 请求参数: is_ajax=1&content=评论内容&... 这里面的参数一定要和电脑页面的POST参数保持一致
7、模块的评论点赞支持
请求地址: /index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录授权码]&api_auth_uid=[用户id]&s=[模块目录]&c=comment&m=post&id=[内容id]&rid=[评论记录id]&t=zc
8、模块的评论反对
请求地址: /index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录授权码]&api_auth_uid=[用户id]&s=[模块目录]&c=comment&m=post&id=[内容id]&rid=[评论记录id]&t=fd
9、用户中心头像上传
请求地址: /index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录授权码]&api_auth_uid=[用户id]&s=member&c=account&m=avatar 请求参数: is_ajax=1&file=[base64图片编码格式] 必须在在客户端把图片文件进行base64编码后传入请求参数中
10、网站表单提交
请求地址: /index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录授权码]&api_auth_uid=[用户id]&s=form&c=表单名称&m=post 请求参数: is_ajax=1&data[title]=... 这里面的参数一定要和电脑页面的POST参数保持一致
文件字段的上传接口
文件上传也属于数据提交接口的一种,我们可以利用数据提交接口的方法来完成。
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=api&c=file&m=upload&fid=[文件上传字段的id号]&siteid=[站点id]
fid是你后台自定义上传字段的id号,例如下图中的【9】。
请求参数:
表单文件upload的名称name=file_data,这个一定要固定。
前端示例:
这里以html为例,因为不同的客户端语言方法不一样!返回结果:
114是文件的id号,用于发布文章使用储存,url是详细路径。
php版本的客户端示例代码(因为不同的客户端语言方法不一样,只列举php的,以此类推):
----------------------多文件字段如何运用多个文件上传呢----------------
上传原理:通过本接口多次进行上传操作,每次上传成功后,会返回一个附件id号,通过多次上传会返回多个id号,然后再客户端组装为多文件数组格式,再提交到服务器后台。
模块内容列表接口
api插件的模块内容列表接口,针对模块内容列表界面的数据调用。
除了用本教程外,也可以使用任意页面查询接口来实现本教程的功能点。
以列表页接口为例
1、点击进入列表页接口界面
2、在输出字段中,勾选你要输出的字段
3、点保存配置,更新缓存之后,然后再点测试接口,可查看结果
自定义回调函数写法:
当觉得返回数据不满足你的需求时,比如你要多返回一些数据,就会用到此方法
1、打开或新建文件/dayrui/My/Library/Http.php,这个文件专门是定义回调方法的
$t) { $rt[$i]['title'] = dr_strcut($t['title'], 20); // 为循环体中的标题截取20个字 } } return $rt; } // 上面是自己加的+++++++++++ //// 下面是系统自带的 }
其中,news_list_call_data就是方法名称,$rt是选中返回的字段遍历数组,需要你手动格式化显示;
2、设置好回调函数
3、预览效果接口
自定义模板代码写法:
当觉得返回数据不满足你的需求时,比如你要多返回一些数据,除了用到上面函数方法外,还可以用到此方法
https://www.xunruicms.com/doc/1193.html
比如我在列表中返回当前查询结果的全体数据量,写法是
需要会php技术和模板标签技术。
用户中心列表数据
用户中心列表数据接口属于任意页面API接口的一种,那么方法参数可以参考任意页面API接口。
此接口需要用户登录,因此还需要使用[会员认证码]。
请求格式:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid[用户id]&page=[第几页]&[任意页面参数]
返回结果:
本页的全部数据,默认用户中心的数据放在data[list]数组内容,支持自定义回调方法来规范他们
使用范围:
用户中心的全部列表数据都可以使用本接口读取,例如:文章列表、收藏夹列表、我的交易记录列表、订单列表等等。
分页数控制:
移动端api分页数在后台配置,每页显示多少条数据控制
相关例子:
文章列表为例,请求地址:
http://www.demo.com/index.php?api_auth_code=ee6d3a0215bd148f80b686a462d6c15e&api_auth_uid=1&appid=1&appsecret=FCAD3481CFB2D55&s=member&app=news&c=home&m=index&page=1
返回结果如下:
返回数据也可以通过《回调方法》来规范他们
回调方法
回调方法用于格式化输出数据,默认接口会输出一大堆数据,而实际项目中并不需要太多数据,开发者可以使用此方法来规范返回数据,例如按需返回数据、将文件id号转换为实际地址、多组文件返回等格式,需要开发者自己写代码转换。
1、使用方法
只需要在url请求参数中加上参数:
&api_call_function=回调方法名称
2、回调方法定义方式:
http://help.xunruicms.com/351.html
模块内容阅读数累加统计
模块内容阅读数累加统计,请求一次接口增加一次阅读量:
接口格式如下:
/index.php?appid=[APPID]&appsecret=[appsecret]&s=api&c=module&app=模块目录&m=hits&id=内容id
返回格式:
"code":1, // 1表示成功 "msg":2002," // 表示当前阅读数
api图片验证码调用
在api提交数据时调用图片验证码图片
网站域名/index.php?appid=[APPID]&appsecret=[appsecret]&s=api&c=api&m=captcha&width=图片宽度&height=图片高度
这个地址用于生成图片验证码的
表数据修改/新增/删除
任意表数据:修改/新增/删除
权限配置属性:
需要提前在对应的接口密钥中配置操作权限和数据表权限
一、新增接口
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=httpapi&m=insert&call=[回调格式化函数]
请求参数:
table:数据表名 value: 入库格式数组[ "字段名1" => "字段值1", "字段名2" => "字段值2", ]
相关例子:
1、新建表dr_api_test
CREATE TABLE IF NOT EXISTS `dr_api_test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(250) NOT NULL COMMENT '标记', `content` varchar(255) NOT NULL COMMENT '备注', `inputtime` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `inputtime` (`inputtime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='api数据测试表';
2、通过api接口插入数据
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=httpapi&m=insert
POST数据格式:
table=api_test&value[title]=标题姓名&value[content]=内容部分话&
3、数据返回
{"code":自增ID,"msg":"ok","data":[]}
数据库结果:
4、如何进行格式化数据?
例子中的api_test表有一个inputtime字段是录入时间作用,一般情况下需要调用当前时间插入进去,其实我们可以使用格式化数据的方法
请求地址改成
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=httpapi&m=insert&call=api_test
加了一个参数
call=api_test
表示调用这个方法来进行数据格式化操作
回调方法的定义方法:https://www.xunruicms.com/doc/351.html
方法我们可以写成
public function api_test($id, $value) { // id是数据的自增id,为0时表示新增 $value['inputtime'] = SYS_TIME;// 当前时间 return $value; }
数据库效果:
二、数据更新修改接口
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=httpapi&m=update&call=[回调格式化函数]
请求参数:
table:数据表名 id: 表的主键id号 value: 修改格式数组[ "字段名1" => "字段值1", "字段名2" => "字段值2", ]
相关例子:
1、表dr_api_test
2、通过api接口插入数据
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=httpapi&m=update
POST数据格式:
id=1&table=api_test&value[title]=标题姓名222&value[content]=内容部分话222&
3、数据返回
{"code":ID,"msg":"ok","data":[]}
4、支持回调数据的写法,参考上面例子
三、数据删除接口
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=httpapi&m=delete
请求参数:
table:数据表名 id: 表的主键id号
相关例子:
1、表dr_api_test
2、通过api接口插入数据
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=httpapi&m=delete
POST数据格式:
id=1&table=api_test
删除id=1的数据
3、数据返回
{"code":1,"msg":"ok","data":[]}
删除就没有1的数据了
用户注册接口
本接口用于注册用户,并返回用户基本信息和登录appsecret。
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&s=member&c=register&
请求POST参数:
is_ajax=1&is_protocol=1&data[username]=账号&data[password]=密码&data[password2]=确认密码&data[email]=邮箱可选&data[phone]=手机号码可选
参数需要和pc的form抓取的参数保持一致。
POST请求格式:https://www.xunruicms.com/doc/1134.html
返回结果:
[ "code" : 0表示失败, 大于0表示成功了 "msg": 失败是的错误提示 "data" : 注册成功的用户基本属性 ]
注册时使用手机验证码认证时,需要提前从服务端发送验证码并获取这个验证码字段code,例如:
1、发送验证码给手机,并返回验证码值:
/index.php?appid=[APPID]&appsecret=[appsecret]&s=member&c=api&m=register_code&id=手机号&code=xunruicms
如果提示图片验证码不正确的错误,你可以在cms后台:系统-系统设置-api设置-图片验证码选择禁用
2、此接口返回数据:
[ "code" : 0表示失败, 大于0表示成功了 "msg": 失败是的错误提示 ]
3、在app注册界面新增字段用于提交手机收到的验证码:
name为sms即可,不需要data包起来
短信登录接口
本接口用于验证用户的登录,并返回用户基本信息和登录appsecret。
GET请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&s=member&c=login&m=sms
POST请求参数:
is_ajax=1&data[phone]=手机号码&sms=手机收到的验证码
POST请求格式:https://www.xunruicms.com/doc/1134.html
返回结果:
以上数据中的auth就是登录认证码,如果要请求验证登录的任意页面时必须使用该认证码。
APP或者小程序开发时,通常将以上数据缓存本地,以便判断用户是否已经登录。
登录时使用手机验证码认证时,需要提前从服务端发送验证码并获取这个验证码字段code,例如:
1、发送验证码给手机,并返回验证码值:
/index.php?appid=[APPID]&appsecret=[appsecret]&s=member&c=api&m=login_code&id=手机号&code=xunruicms
如果提示图片验证码不正确的错误,你可以在cms后台:系统-系统设置-api设置-图片验证码选择禁用
2、此接口返回数据:
[ "code" : 0表示失败, 大于0表示成功了 "msg": 失败是的错误提示 ]
3、在app注册界面新增字段用于提交手机收到的验证码:
name为sms即可,不需要data包起来
文件删除接口
文件删除需要验证登录账号,只能删除登录账号上传的文件
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid[用户id]&s=api&c=file&m=file_delete&id=[文件的id号]
id是你后台附件的id号。
返回结果:
[ code => 1或0, msg => '失败原因' ]
点赞插件接口
1、支持接口
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=zan&c=home&m=digg&app=模块目录&id=模块内容id&value=1
2、反对接口
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=zan&c=home&m=digg&app=模块目录&id=模块内容id&value=0
3、是否支持接口
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=zan&c=home&m=is_digg&app=模块目录&id=模块内容id&value=1
4、是否反对接口
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=zan&c=home&m=is_digg&app=模块目录&id=模块内容id&value=0
hy空间插件接口
1、用于hy插件的关注接口
index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=hy&c=show&m=friend&uid=对方会员id号&
返回格式
{ code: 1 成功 / 0失败, msg: "", data : { status: 1 表示关注成功 2表示相互关注 0表示取消关注 value: 文字提示 } }
2、用于hy插件的判断是否被关注的接口
index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=hy&c=show&m=is_friend&id=对方会员id号&
返回格式
{ code: 1 成功 / 0失败, msg: "", data : { status: 1 表示关注成功 2表示相互关注 0表示取消关注 value: 文字提示 } }
内容收藏插件接口
收藏插件接口
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=api&c=module&m=favorite&app=模块目录&id=模块内容id&value=1
返回格式:
{
code: 1,
msg: 错误信息,
data: 收藏数量
}
--------------题外写法(不适用于本接口)------------
判断当前登陆用户是否收藏
{if \Phpcmf\Service::M()->db->table(SITE_ID.'_'.MOD_DIR.'_favorite')->where('cid', $id)->where('uid', $member.uid)->countAllResults()} 收藏了 {else} 没有 {/if}
模块栏目信息调用接口
栏目详情接口属于任意页面API接口的一种,那么方法参数可以参考任意页面API接口。
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&s=news&c=category&id=[栏目id]
返回格式:
data是栏目页面的全部变量
返回数据,非常多,而且乱,你可以使用《回调方法》来规范显示结果。
回调方法
回调方法用于格式化输出数据,默认接口会输出一大堆数据,而实际项目中并不需要太多数据,开发者可以使用此方法来规范返回数据,例如按需返回数据、将文件id号转换为实际地址、多组文件返回等格式,需要开发者自己写代码转换。
使用方法
只需要在url请求参数中加上参数:
&api_call_function=回调方法名称
打开或新建文件/dayrui/My/Library/Http.php,这个文件专门是定义回调方法的
public function my_test3($data) { $rt = [ 'name' => $data['name'],// 栏目名称 'id' => $data['id'],// id号 'thumb' => dr_thumb($data['thumb'], 200, 200),// 图片id转换为地址 'content' => $data['content'], // 如果想调用更多的字段可以写在这个数组里面 ]; return $rt; }
回调方法定义方式:
http://help.xunruicms.com/351.html
模块内容详情页接口
api插件的模块内容接口,针对模块内容列表和模块内容详情界面的数据调用。
除了用本教程外,也可以使用任意页面查询接口来实现本教程的功能点。
以内容页接口为例
1、点击进入内容页接口界面,然后选择一个测试内容
2、在输出字段中,勾选你要输出的字段
3、点保存配置,更新缓存之后,然后再点测试接口,可查看结果
注意这里,看到thumb是数字id,我们需要返回图片详情地址怎么办呢?
回到(2)界面,后面的格式化函数,进行把图片id转换为地址
效果如下
自定义回调函数写法:
当觉得返回数据不满足你的需求时,比如你要多返回一些数据,就会用到此方法
1、打开或新建文件/dayrui/My/Library/Http.php,这个文件专门是定义回调方法的
其中,news_show_call_data就是方法名称,$rt是传入的返回数组, ,需要你手动格式化显示;
2、设置好回调函数
3、预览效果接口
自定义模板代码写法:当觉得返回数据不满足你的需求时,比如你要多返回一些数据,除了用到上面函数方法外,还可以用到此方法
https://www.xunruicms.com/doc/1116.html
汇总一些api数据接口的回调开发
查询指定用户的资料
https://www.xunruicms.com/wenda/25400.html
调用的指定的栏目数据
https://www.xunruicms.com/wenda/25200.html
定义的用户中心会员发布的文章列表回调参数
https://www.xunruicms.com/wenda/25162.html
用户中心的投稿内容列表API图片方法定义
https://www.xunruicms.com/wenda/25120.html
删除评论功能
https://www.xunruicms.com/wenda/41927.html
头像上传接口
本接口用于注册用户上传自己的头像和更新头像
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&api_auth_code=[登录appsecret]&api_auth_uid=[用户id]&s=member&c=account&m=avatar&r=9351
请求POST参数:
is_ajax=1&file=base64格式的图片字符串
一定要传入base64格式的图片
POST请求格式:https://www.xunruicms.com/doc/1134.html
返回结果:
[ "code" : 0表示失败, 大于0表示成功了 "msg": 失败是的错误提示 "data" : 用户基本属性 ]
注意事项:更新头像后,头像地址并不会发发生变化,客户端程序需要自己更新本地缓存才能看到最新的头像
模块内容页附加自定义模板代码
本教程需要专业的PHP或模板标签技术基础。
本功能用于对数据的返回处理,例如把图片数字id转换为正式URL等等。
例如:将show.html模块内容页的变量进行实例化自定义输出
$api变量为返回的数据数组变量
{php $api['新变量'] = '这是新加的title字符';}
例如:show.html变量名为:{$title},那么在本段代码也是一样的写法:
{php $api['title'] = $title.'这是新加的title字符';}
文章上下页变量传递:
{php $api['preveid'] = $prev_page['id'];} {php $api['preve'] = $prev_page['title'];} {php $api['nexteid'] = $next_page['id'];} {php $api['nexte'] = $next_page['title'];}
用户信息获取接口
通过用户id号获取用户详细资料和头像地址
请求地址:
/index.php?appid=[APPID]&appsecret=[appsecret]&s=httpapi&m=member&uid=[用户的id]
返回格式:
[ "code" : 0表示失败, 大于0表示成功了 "msg": 失败是的错误提示 "data" : 用户信息数组 ]
----------回调函数写法-----------
https://www.xunruicms.com/doc/351.html
public function my_member($data) { if ($data && $data['id']) { $data['aaa'] = 1; // 新建的返回变量 } return $data; }
自定义数据接口-php执行文件代码
当系统本身的接口不满足你的需求时,你可以在这里进行接口自定义服务端代码(本类型需要有php的开发经验)。
用法举例
查询全部用户,并返回username和email数据
1、定义test.php接口文件:./dayrui/App/Httpapi/Api/test.php
table('member')->getAll(); if ($data) { foreach ($data as $r) { $return[] = [ 'id' => $r['id'], 'username' => $r['username'], ]; } }
这里就写入你的php代码,查询语句,提交语句等等。
中途返回也可以这样写:
\Phpcmf\Service::C()->_json(1, '我的返回脚本成功了', ['返回数组']); // 成功写法 \Phpcmf\Service::C()->_json(0, '我的返回脚本失败了'); // 失败写法
2、后台选择test.php文件
3、测试请求结果时,返回格式为:
array(3) { ["code"]=> int(1) ["msg"]=> string(2) "ok" ["data"]=> array(13) { [0]=> array(2) { ["id"]=> string(1) "1" ["username"]=> string(5) "admin" } ......
本类型对php技能要求比较高,如果遇到执行错误可以在错误日志检查结果。
网站信息接口
网站信息结果用于把网站logo,网站名称,网站友情链接,幻灯图片等自定义的网站信息字段数据传输给app端
然后设置网站输出的信息字段:
你定义了哪些字段就勾选哪些字段
针对数据不满意你的需求,字段后面可以设置回调函数来对值进行格式化处理
======附加自定义模板代码的用法===========
{php $api['title'] = '这是新加的title字符';}
效果:
模块列表页附加自定义模板代码
本教程需要专业的PHP或模板标签技术基础。
本功能用于对数据的返回处理,例如把图片数字id转换为正式URL等等。
例如:将list.html模块列表页的变量进行实例化自定义输出
给循环体内附加新变量
{loop $api $key $t} {php $api[$key]['新变量'] = '这是新加的title字符';} {/loop}
效果如下:
网站栏目接口
api插件的网站栏目接口,针对栏目数据循环调用和单个栏目调用等。
以共享栏目接口为例
1、点击进入栏目接口界面
2、在输出字段中,勾选你要输出的字段,不勾选表示全部数据
3、点保存配置,更新缓存之后,然后再点测试接口,可查看结果
参数说明:
pid=0:调用顶级栏目集合 pid=栏目ID:调用栏目ID下面的子栏目集合 id=栏目ID:调用单个指定栏目数据
自定义回调函数写法:
1、打开或新建文件/dayrui/My/Library/Http.php,这个文件专门是定义回调方法的
$t) { $rt[$i]['na'] = dr_strcut($t['name'], 20); // 为循环体中的标题截取20个字 } } return $rt; } // 上面是自己加的+++++++++++ //// 下面是系统自带的 }
其中,cat_list_call_data就是方法名称,$rt是选中返回的字段遍历数组,需要你手动格式化显示;
2、设置好回调函数
3、预览效果接口
千万不要把系统自带的代码删了
栏目接口附加自定义模板代码
本教程需要专业的PHP或模板标签技术基础。
本功能用于对数据的返回处理,例如把图片数字id转换为正式URL等等。
将栏目循环集合的变量进行实例化自定义输出
给循环体内附加新变量
{loop $api $key $t} {php $api[$key]['新变量'] = '这是新加的title字符';} {/loop}
效果如下:
自定义数据接口-自定义模板标签
这种api解析接口用的人是最多的,也是最方便的
本类型需要有CMS模板标签的使用经验,直接写标签代码返回结果,本类型可以直接在标签里面写赋值方法和格式化显示,不需要写回调方法
这里循环出news模块的全部数据,只显示id,title,再把thumb转换为url地址。
--------------
也可以这样写,原理是将输出变量赋值给$api数组:
{module module=news} {php $api[$key]=[];} {php $api[$key]['id']=$t['id'];} {php $api[$key]['title']=$t['title'];} {php $api[$key]['thumb']=dr_thumb($t['thumb'], 200,200);} {/module}
以上语法格式为: