dedecms rest接口使用教程

REST是一种基于HTTP动词与资源路径的接口风格,清晰、规范、易于扩展。DedeCMS默认并不内置完整REST接口,但可以通过轻量改造,搭建一套符合REST约定的数据服务。本教程讲解设计与调用方法。

一、REST接口核心约定

REST以资源为中心,通过HTTP动词表达操作意图:GET读取、POST新建、PUT更新、DELETE删除。资源路径用名词复数表示,如/articles/categories

方法路径含义
GET/articles文章列表
GET/articles/12单篇文章
POST/articles新建文章

二、路由实现方式

1. 单入口路由

新建api/index.php作为统一入口,解析$_SERVER['REQUEST_URI']$_SERVER['REQUEST_METHOD'],分发到对应处理函数。伪静态规则将/api/...重写到该入口。

$path=trim($_SERVER['PATH_INFO'] ?? '', '/');
$seg=explode('/', $path);
$method=$_SERVER['REQUEST_METHOD'];
// /articles/12=> $seg=['articles','12']

2. 多文件路由

简单场景也可直接用多文件,如articles.phpcategory.php,通过?id=区分资源,开发更快但规范度稍弱。

三、资源处理示例

1. 列表资源(GET /articles)

$tid=intval($_GET['typeid'] ?? 0);
$sql="SELECT id,title,pubdate FROM dede_archives WHERE arcrank>-2";
if($tid) $sql .=" AND typeid=$tid";
$sql .=" ORDER BY pubdate DESC LIMIT $offset,$pagesize";

2. 单资源(GET /articles/{id})

取到id后联合附加表查询,返回字段需按需裁剪,避免泄露管理员字段。资源不存在时返回404状态码与错误体。

四、状态码与返回结构

REST接口应善用HTTP状态码:200成功、201创建、400参数错误、401未授权、404不存在、500服务器错误。返回体建议统一结构:

{
  "code": 0,
  "msg": "ok",
  "data": { "id": 12, "title": "..." }
}

五、鉴权与安全

六、调用示例

1. curl调用

curl -X GET "https://example.com/api/articles?typeid=1&page=1"
curl -X GET "https://example.com/api/articles/12"

2. JavaScript调用

fetch('/api/articles/12').then(r=>r.json()).then(d=>console.log(d));

七、使用建议与展望

建议在接口设计阶段就明确资源边界与动词用法,避免后期接口混乱。对于复杂查询(多条件筛选、聚合统计),可在资源下扩展子路径(如/articles/search)。REST风格能让DedeCMS的数据服务更规范、更易对接多端,值得在前端化、小程序化项目中长期投入。