老张API

老张API内容管理

版本 v1.0.03· 胡思乱想 · 2 次获取 · 内容管理
老张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 预检
  • 后台在线接口文档,可一键复制接口地址与示例
  • 支持站点信息、登录注册、分类、标签、帖子列表/详情、发帖回帖、点赞收藏、关注、搜索、单页、文件上传

安装

  1. 将 zsApi 文件夹放入 plugins/ 目录(即当前目录)。
  2. 进入后台「应用中心 → 插件」,找到「老张API」并安装、启用。
  3. 安装后左侧菜单出现「老张API」,进入后可查看接口地址、修改配置与阅读接口文档。
  4. 确保「社区」插件(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官方交流群 QQ官方交流群