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 = '保存天数'
//发送的POST字段如下
username = '用户名'
password = md5('密码明文')
savedate = '保存天数'
"StaticName": "admin" // 等等 members 相关信息
"expire_time": 1672560322 // 过期时间
{
"code": 200,
"message": "操作成功",
"data": {
"user": {
"ID": "1",
"Level": "1",
"Status": "0",
"Name": "admin",
"StaticName": "admin" // 等等 members 相关信息
},
"token": "Token 信息",
"expire_time": 1672560322 // 过期时间
},
"error": null,
"runtime": {
}
}
{
"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 创建一个用户
"Password": "zblog_pwdd",
"PasswordRe": "zblog_pwdd"
{
"ID": "0",
"Level": "4",
"Name": "用户名",
"Password": "zblog_pwdd",
"PasswordRe": "zblog_pwdd"
}
{
"ID": "0",
"Level": "4",
"Name": "用户名",
"Password": "zblog_pwdd",
"PasswordRe": "zblog_pwdd"
}
- “ID”: “0”, 必须显示设置;
- “Level”: “4”, 为用户等级。
二、post管理API

实例1:post 新建或发布文章的$_POST参数示范
$_POST['Type'] 为 0 是文章,1 是 page 页面
$_POST['CateID'] 如果没有提供 CateID,可提供 CateName
$_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'] 状态
$_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['ReplyID'] 回复评论的ID
$_POST['LogID'] 评论对应的文章ID
$_POST['Name'] 评论者名字
$_POST['ReplyID'] 回复评论的ID
$_POST['Email'] 评论者电邮
$_POST['HomePage'] 评论者网站
$_POST['Content'] 评论正文
$_POST['LogID'] 评论对应的文章ID
$_POST['Name'] 评论者名字
$_POST['ReplyID'] 回复评论的ID
$_POST['Email'] 评论者电邮
$_POST['HomePage'] 评论者网站
$_POST['Content'] 评论正文
六、module管理API

实例:post 新建或编辑模块的$_POST参数示范
$_POST['FileName'] 模块的唯一标识符,起名需符合文件名规则
$_POST['HtmlID'] 模块的HTML的id
$_POST['MaxLi'] 模块内li标签最大数量
$_POST['IsHideTitle'] 是否隐藏模块的标题
$_POST['Type'] 模块的类别,为div或ul
$_POST['NoRefresh'] 锁定模块的内容不让程序更改
$_POST['ID'] 为 0 是新建
$_POST['FileName'] 模块的唯一标识符,起名需符合文件名规则
$_POST['HtmlID'] 模块的HTML的id
$_POST['MaxLi'] 模块内li标签最大数量
$_POST['IsHideTitle'] 是否隐藏模块的标题
$_POST['Type'] 模块的类别,为div或ul
$_POST['Content'] 模块的内容
$_POST['NoRefresh'] 锁定模块的内容不让程序更改
$_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_ADDITIONAL_SECURITY',
'ZC_USING_CDN_GUESTIP_TYPE',
'ZC_DISPLAY_SUBCATEGORYS',
'ZC_SYNTAXHIGHLIGHTER_ENABLE',
'ZC_COMMENT_REVERSE_ORDER',
'ZC_COMMENTS_DISPLAY_COUNT',
'ZC_COMMENT_VERIFY_ENABLE',
'ZC_ARTICLE_INTRO_WITH_TEXT',
'ZC_ARTICLE_THUMB_SWITCH',
'ZC_ARTICLE_THUMB_WIDTH',
'ZC_ARTICLE_THUMB_HEIGHT',
'ZC_DELMEMBER_WITH_ALLDATA',
'ZC_CATEGORY_MANAGE_LEGACY_DISPLAY',
$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',
);
$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['Template'] 标签的模板,默认为空
$_POST['ID'] 为 0 是新建
$_POST['Alias'] 标签的别名
$_POST['Intro'] 标签的简介
$_POST['Template'] 标签的模板,默认为空
$_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"}
"runtime":{"time":"54.25","query":14,"memory":4035,"debug":0,"loggedin":1,"error":0}
{"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}
}
{"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。