API地址模式:https://example.com/zb_system/api.php?mod=<模块名>[&act=<行为名>][&其他…]
1、对于各【API 模块】的act=post请求,其请求参数为$GLOBALS[‘datainfo’]中与该模块对应的数据字段定义;
- 参数字段名区分大小写;
- 不需要提供全部字段值,比如【发布状态】【类型(文章/页面)】【置顶】等项目可以使用默认,而时间相关的
字段则会初始为当前时间; - 除Comment和Upload外,act=post请求时ID 字段为必须指定,为 0 时新建,不为 0 且项目存在时则修改;
- 可在【zb_system/defend/datainfo.php】文件中搜索查看$GLOBALS[‘datainfo’]。
2、各接口返回信息以实际为准,可参考【通用返回格式】。
3、对于【登录】操作以外的POST请求,一律需要设置鉴权;【登录和鉴权】
GET请求时仅在部分【功能模块】中的部分【只读操作】可以不设置鉴权,此外未鉴权请求频率或查询数量可能受限制。
以下将按【功能模块】进行详细说明。
一、member管理API
实例1:login登录成功后返回值
//发送的POST字段如下 username = '用户名' password = md5('密码明文') savedate = '保存天数'
{ "code": 200, "message": "操作成功", "data": { "user": { "ID": "1", "Level": "1", "Status": "0", "Name": "admin", "StaticName": "admin" // 等等 members 相关信息 }, "token": "Token 信息", "expire_time": 1672560322 // 过期时间 }, "error": null, "runtime": { } }
此处login操作返回的「鉴权 Token」将用于后续需要「鉴权」的请求。
实例2:post 创建一个用户
{ "ID": "0", "Level": "4", "Name": "用户名", "Password": "zblog_pwdd", "PasswordRe": "zblog_pwdd" }
- “ID”: “0”, 必须显示设置;
- “Level”: “4”, 为用户等级。
二、post管理API
实例1:post 新建或发布文章的$_POST参数示范
$_POST['ID'] 为 0 是新建 $_POST['Title'] $_POST['Alias'] $_POST['Type'] 为 0 是文章,1 是 page 页面 $_POST['AuthorID'] $_POST['CateID'] 如果没有提供 CateID,可提供 CateName $_POST['Intro'] $_POST['Content'] $_POST['Tag'] $_POST['PostTime'] $_POST['Status'] 状态
注意:对于发布文章,额外提供一个CateName字段可用来代替CateID指定分类,前提是存在以该字段值命名的分类;也可以使用category模块内的接口实现自动创建分类等操作。
三、app管理API
四、category管理API
五、comment管理API
实例:post 发布评论的$_POST参数示范
$_POST['LogID'] 评论对应的文章ID $_POST['Name'] 评论者名字 $_POST['ReplyID'] 回复评论的ID $_POST['Email'] 评论者电邮 $_POST['HomePage'] 评论者网站 $_POST['Content'] 评论正文
六、module管理API
实例:post 新建或编辑模块的$_POST参数示范
$_POST['ID'] 为 0 是新建 $_POST['FileName'] 模块的唯一标识符,起名需符合文件名规则 $_POST['HtmlID'] 模块的HTML的id $_POST['MaxLi'] 模块内li标签最大数量 $_POST['IsHideTitle'] 是否隐藏模块的标题 $_POST['Type'] 模块的类别,为div或ul $_POST['Content'] 模块的内容 $_POST['NoRefresh'] 锁定模块的内容不让程序更改
七、system管理API
实例:get_setting 和 save_setting 可以返回或设置的 option 值
$GLOBALS['setting_keys'] = array( 'ZC_BLOG_NAME', 'ZC_BLOG_SUBNAME', 'ZC_BLOG_COPYRIGHT', 'ZC_TIME_ZONE_NAME', 'ZC_BLOG_LANGUAGEPACK', 'ZC_API_ENABLE', 'ZC_XMLRPC_ENABLE', 'ZC_DEBUG_MODE', 'ZC_DEBUG_MODE_WARNING', 'ZC_ADDITIONAL_SECURITY', 'ZC_USING_CDN_GUESTIP_TYPE', 'ZC_CLOSE_SITE', 'ZC_DISPLAY_COUNT', 'ZC_DISPLAY_SUBCATEGORYS', 'ZC_PAGEBAR_COUNT', 'ZC_SEARCH_COUNT', 'ZC_SYNTAXHIGHLIGHTER_ENABLE', 'ZC_COMMENT_TURNOFF', 'ZC_COMMENT_AUDIT', 'ZC_COMMENT_REVERSE_ORDER', 'ZC_COMMENTS_DISPLAY_COUNT', 'ZC_COMMENT_VERIFY_ENABLE', 'ZC_UPLOAD_FILETYPE', 'ZC_UPLOAD_FILESIZE', 'ZC_ARTICLE_INTRO_WITH_TEXT', 'ZC_ARTICLE_THUMB_SWITCH', 'ZC_ARTICLE_THUMB_TYPE', 'ZC_ARTICLE_THUMB_WIDTH', 'ZC_ARTICLE_THUMB_HEIGHT', 'ZC_MANAGE_COUNT', 'ZC_POST_BATCH_DELETE', 'ZC_DELMEMBER_WITH_ALLDATA', 'ZC_CATEGORY_MANAGE_LEGACY_DISPLAY', );
八、tag管理API
实例:post 新建或编辑标签的$_POST参数示范
$_POST['ID'] 为 0 是新建 $_POST['Alias'] 标签的别名 $_POST['Intro'] 标签的简介 $_POST['Template'] 标签的模板,默认为空
九、upload管理API
实例:post 提交新的附件
客户端或小程序 POST 提交上传文件到 mod=upload&act=post,提交成功后 json($upload) 对象 例如:
{"code":200,"message":"操作成功","data": {"upload":{"ID":118,"AuthorID":"1","Size":100676, "Name":"tmp_14af3ac3791ceeb34e0755ccc3586ce2.jpg", "SourceName":"tmp_14af3ac3791ceeb34e0755ccc3586ce2.jpg", "MimeType":"image/jpeg","PostTime":1648973749, "DownNums":0,"LogID":0,"Intro":"","Url":"xxxxxxxxxxxxxxx"} },"error":null, "runtime":{"time":"54.25","query":14,"memory":4035,"debug":0,"loggedin":1,"error":0} }
提交失败后返回 false。