老张API内容管理
老张API 是 Zsadmin 的接口插件,把社区中最常用的数据以统一 REST 接口输出,方便微信小程序、uni-app、Flutter、原生 APP 等客户端直接接入。
1.00原价
一次购买,永久使用
详情介绍
老张API(zsApi)
老张API 是 Zsadmin 的接口插件,把社区中最常用的数据以统一 REST 接口输出,方便微信小程序、uni-app、Flutter、原生 APP 等客户端直接接入。
- 作者:kuakeba.cn
- 版本:1.0.0
- 依赖:Zsadmin 3.x、社区插件(community)
- 零侵入:使用插件路由与中间件实现,不修改任何宿主文件或社区模板
功能特性
- 统一 JSON 返回:
{"code":1|0,"msg":"...","data":{...},"time":...} - Token 无状态鉴权,适合无法使用 Cookie 的客户端
- 只读接口公开访问,写操作需登录令牌
- 内置跨域处理,自动响应
OPTIONS预检 - 后台在线接口文档,可一键复制接口地址与示例
- 支持站点信息、登录注册、分类、标签、帖子列表/详情、发帖回帖、点赞收藏、关注、搜索、单页、文件上传
安装
- 将
zsApi文件夹放入plugins/目录(即当前目录)。 - 进入后台「应用中心 → 插件」,找到「老张API」并安装、启用。
- 安装后左侧菜单出现「老张API」,进入后可查看接口地址、修改配置与阅读接口文档。
- 确保「社区」插件(community)已安装并启用,否则内容类接口会返回「社区插件未安装或未启用」。
安装时会自动写入后台菜单,并重新编译插件启动文件;卸载时会清理菜单,不删除任何社区数据。
接口地址
https://你的域名/api/zsapi健康检查:
GET /api/zsapi/index鉴权
登录或注册成功后返回 token。需要登录的接口请任选一种方式携带:
Authorization: Bearer {token}X-Api-Token: {token}?token={token}Token 默认有效期 30 天,可在后台修改。重置「令牌签名密钥」会让所有已签发 Token 立即失效。
接口一览
基础
| 方法 | 地址 | 鉴权 | 说明 |
|---|---|---|---|
| GET | /api/zsapi/index | 否 | 健康检查、版本与接口数量 |
| GET | /api/zsapi/init | 否 | 站点与社区初始化信息、内容模型、当前用户 |
| GET | /api/zsapi/docs | 否 | 接口清单(需开启「公开接口文档」) |
| POST | /api/zsapi/login | 否 | 用户名密码登录 |
| POST | /api/zsapi/register | 否 | 注册并直接返回 Token |
| POST | /api/zsapi/logout | 是 | 退出登录(客户端丢弃 Token 即可) |
内容浏览
| 方法 | 地址 | 鉴权 | 说明 |
|---|---|---|---|
| GET | /api/zsapi/categories | 否 | 启用版块列表 |
| GET | /api/zsapi/tags | 否 | 标签列表 |
| GET | /api/zsapi/topics | 否 | 帖子列表(分页、版块、类型、作者、关键词、排序) |
| GET | /api/zsapi/topic | 否 | 帖子详情(自增浏览量) |
| GET | /api/zsapi/replies | 否 | 回复列表(含楼中楼) |
| GET | /api/zsapi/search | 否 | 搜索帖子 |
| GET | /api/zsapi/user | 否 | 用户主页 |
| GET | /api/zsapi/page | 否 | 单页内容(关于我们、协议等) |
登录用户
| 方法 | 地址 | 鉴权 | 说明 |
|---|---|---|---|
| GET | /api/zsapi/user/profile | 是 | 我的资料 |
| GET | /api/zsapi/user/topics | 是 | 我的帖子 |
| GET | /api/zsapi/user/favorites | 是 | 我的收藏 |
| POST | /api/zsapi/topic/save | 是 | 发布 / 编辑帖子 |
| POST | /api/zsapi/reply/save | 是 | 发表回复 / 楼中楼 |
| POST | /api/zsapi/topic/like | 是 | 点赞 / 取消点赞 |
| POST | /api/zsapi/topic/favorite | 是 | 收藏 / 取消收藏 |
| POST | /api/zsapi/user/follow | 是 | 关注 / 取关用户 |
| POST | /api/zsapi/category/follow | 是 | 关注 / 取关版块 |
| POST | /api/zsapi/upload | 是 | 上传文件(字段名 file) |
更详细的参数与返回说明请直接在后台「老张API → 接口文档」查看。
请求示例
登录
curl -X POST https://你的域名/api/zsapi/login \
-H "Content-Type: application/json" \
-d '{"username":"demo","password":"123456"}'成功返回:
{
"code": 1,
"msg": "登录成功",
"data": {
"token": "eyJ1aWQiOjEsImlhdCI6...",
"expires_in": 2592000,
"expires_at": 1790000000,
"user": {
"id": 1,
"username": "demo",
"nickname": "demo",
"avatar": "/static/admin/images/users/avatar.jpg",
"coins": 100,
"gold": 0
}
},
"time": 1760000000
}帖子列表
curl "https://你的域名/api/zsapi/topics?page=1&limit=20&category_id=1&sort=new"{
"code": 1,
"msg": "ok",
"data": {
"list": [
{
"id": 10,
"category_id": 1,
"title": "你好,世界",
"excerpt": "这是来自小程序的帖子",
"cover": "",
"username": "demo",
"avatar": "/static/admin/images/users/avatar.jpg",
"view_count": 12,
"reply_count": 3,
"like_count": 5,
"create_time_text": "2026-11-04 10:00:00"
}
],
"total": 1,
"page": 1,
"limit": 20,
"pages": 1
},
"time": 1760000000
}发帖
curl -X POST https://你的域名/api/zsapi/topic/save \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"category_id":1,"title":"你好,世界","content":"这是来自小程序的帖子","tag_names":["分享"]}'微信小程序
const API = 'https://你的域名/api/zsapi'
wx.request({
url: `${API}/topics`,
data: { page: 1, limit: 20 },
success(res) {
if (res.data.code === 1) {
console.log(res.data.data.list)
}
}
})
// 需要登录的接口
wx.request({
url: `${API}/topic/like`,
method: 'POST',
header: {
'Content-Type': 'application/json',
Authorization: `Bearer ${wx.getStorageSync('token')}`
},
data: { topic_id: 10 },
success(res) {
if (res.data.code === 0 && res.statusCode === 401) {
// 重新登录
}
}
})后台配置
| 配置 | 说明 |
|---|---|
| 启用 API | 关闭后全部接口返回「已关闭」 |
| 令牌签名密钥 | 可留空保存;重置后所有 Token 失效 |
| 令牌有效期 | 1-365 天 |
| 开放 API 注册 | 同时受社区「允许注册」开关约束 |
| 默认每页条数 | 5-50 条 |
| 允许跨域来源 | * 或逗号分隔的域名列表 |
| 公开接口文档 | 是否允许直接访问 /api/zsapi/docs |
常见问题
返回「社区插件未安装或未启用」
请安装并启用社区插件(community),并确认社区前台已开启。
返回「请先登录或令牌已失效」
Token 过期、被重置或用户被禁用。请重新调用登录接口。
发帖提示「该内容模型已关闭,无法发帖」
社区后台关闭了对应内容模型(如问答、视频),请在社区设置中开启或改用其他版块。
上传失败
请检查后台「附件上传」大小与扩展名配置,以及服务器目录写入权限。
文件结构
plugins/zsApi/
├── plugin.json 插件信息
├── ZsApiPlugin.php 插件主类(配置、菜单、密钥)
├── routes.php 前后台路由
├── middleware.php 中间件注册
├── middleware/Cors.php 跨域与 OPTIONS 预检
├── controller/Api.php 前台接口
├── controller/admin/ 后台配置与文档
├── service/ 鉴权、格式化、接口清单
├── view/admin/index.html 后台页面
├── icon.svg / icon.png 插件图标
└── README.md 使用文档© 2026 kuakeba.cn
更新记录 (4)
-
v1.0.03
2026-11-06
完善接口
-
v1.0.02
2026-11-05
适配uniapp
-
v1.0.01
2026-11-04
支持导出配置
-
v1.0.0
2026-11-04
正式发布
微信客服
QQ官方交流群