📄总述
一个为 Discuz! X3.5 提供 API 能力的插件
本项目是对 Discuz 应用中心已有插件
「API接口插件 1.1(codeium_api)」 的深度重构与重写。
简单说就是:
原插件能跑,但不太好用
✨ 项目特性
- 面向 Discuz! X3.5
- 提供统一的 API 接口入口
- JSON 格式返回,适合 App / 小程序 / 前端调用
- 接口结构更清晰,逻辑更可读(自卖自夸了属于是)
⚠️ 安装方式(非常重要)
不要直接把本项目丢进 Discuz。
正确安装流程如下:
1️⃣ 安装基础插件(必须)
前往 Discuz 应用中心,安装:
👉 API接口插件 1.1
地址:
安装完成后,确保插件可以正常启用。
2️⃣ 覆盖为本项目代码
将本仓库中的文件覆盖到 Discuz 原插件目录
也就是插件的安装目录本身。
本项目是 在原有插件基础上的替换与增强,
📂 项目结构说明
codeium_api/ ├── template/ │ └── post_reply.htm ├── admincp.inc.php ├── api.inc.php ├── api_doc.html └── doc.inc.php
各文件说明
api.inc.php
- API 主入口
- 核心逻辑集中地
api_doc.html
- API 接口文档
- 包含接口说明、参数、返回结构
doc.inc.php
- 文档相关逻辑
- 用于在 Discuz 后台环境中展示说明
admincp.inc.php
- 插件后台配置入口
- API Key 等设置项
template/post_reply.htm
- 历史遗留模板文件
- 来源于早期版本的他人实现
- 功能有限,当前项目中基本未使用
- 保留它的原因只有一个:删了怕哪天出事
🔐 API 调用与鉴权
所有接口请求必须包含以下参数:
参数 | 必填 | 说明 |
id | 是 | 固定值: codeium_api:api |
key | 是 | 后台配置的 API Key |
action | 是 | 接口动作名称 |
示例:
GET /plugin.php?id=codeium_api:api&key=YOUR_KEY&action=forum_list
📚 API 接口文档
完整接口文档请查看:
api_doc.html
这是目前最权威、最准确的接口说明来源。
🧩 二次开发说明
新增接口的一般思路
- 所有接口统一通过
api.inc.php进入
- 根据
action分发逻辑
- 返回数据必须是 JSON
- 不要完全信任客户端传参
一定要鉴权!!! 你永远都不知道你的用户会搞什么骚操作!!!
统一返回结构:
{ "code": 0, "message": "Success", "data": {} }
🚫 关于注册接口的说明
❌ 不提供 API 注册接口
项目中 明确放弃 通过 API 进行用户注册。
原因:
- Discuz 注册流程高度复杂
- 涉及安全校验、验证码、风控
- API 注册极易被滥用为批量注册工具
- 实现成本与安全风险不成正比
✅ 推荐做法
客户端跳转 Discuz 官方注册页面 注册完成后,再通过 API 进行登录和数据交互
这是主动设计选择,不是功能缺失。
🚩不过
如果有大牛愿意来解决这个问题,我也非常欢迎你来PR
反正这玩意不是我一个大一学生能办得了的ヽ(*。>Д<)o゜
📝 TODO(真实存在,但尚未完成)
以下接口和功能已完成设计构想,但由于时间、精力、小AI每日tokens限制、以及人类寿命有限等客观原因,目前仍处于 规划 / 半成品 / 等哪天有空 状态。
欢迎有兴趣的开发者一起补完。
🔧 接口计划
用户收藏接口
favorite_list:获取用户收藏的帖子列表
favorite_add:收藏指定主题
favorite_remove:取消收藏
备注:Discuz 原生数据结构有点绕,写到一半开始怀疑人生
点赞 / 支持接口
thread_like
post_like
目标:给 App / 小程序一个不那么复古的交互体验
附件下载鉴权接口
attachment_info
attachment_download_token
防止附件被直接扒走,顺便减少站长血压波动
用户在线状态接口
user_online_status
online_user_list
已想好数据结构,差一个愿意继续写的人(比如未来的我)
📄 License
MIT License
随便你怎么用,怎么改,但是出了事不要来找我就是了~
📌 项目说明
本项目的目标不是“功能最多”,而是:
在 Discuz 的现实限制下,做一个能长期维护的 API 插件
如果你刚好也在和 Discuz 打交道,那你大概懂这有多难。