模板与接口
模板与接口:API 数据入库
给外部系统(采集/同步/三方内容源)提供文章入库能力。
2026-03-04
123
外部文章入库接口(api_content_post)
1. 接口说明
- 用途:给外部系统(采集/同步/三方内容源)提供文章入库能力。
- 鉴权方式:通过请求头 XToken 传入外部入库用户令牌。该 Token 存储在 user 表的 token 字段中。后端会校验:XToken 是否能在 user.token 中匹配到用户;匹配成功才允许入库。
- 栏目处理:请求参数中通过 column_name 指定栏目名称。后端会先按栏目名称查询栏目。若栏目不存在,则自动新建栏目,并取新建栏目的 id 作为 column_id 进行内容入库。
2. Token 获取/刷新
外部入库用户令牌由登录后台的用户自行刷新。
- 刷新 Token:POST /api/sys/resetoken
- 获取用户信息(包含 token 字段):GET /api/sys/userinfo
注:管理后台页面 /system/user-center 已提供 刷新 与 复制 功能。
3. 外部入库接口
3.1 请求
- Method:POST
- URL:/api/api_content_post
- Headers:Content-Type: application/json XToken: <外部入库用户令牌>
3.2 请求体(JSON)
该接口整体复用后台“创建内容”的数据模型(CreateContentReq),并额外增加一个栏目字段 column_name。
3.2.1 字段列表
- column_name (string, required)栏目名称。后端会按此名称查询栏目,不存在则自动创建。
其余字段为内容字段(与后台新增内容一致,对应 CreateContentReq)。字段如下:
- name (string)名称(可选)。
- title (string, required)标题。
- origin (string)来源。
- description (string)描述。
- keywords (string)关键字。
- tags (string)标签(字符串形式,格式与后台一致)。
- tag_ids (array[number])标签 ID 列表。注:可与 tags 同时使用,后端会合并处理。
- img (string)缩略图/封面图。注:不传时后端会尝试从正文提取首图或使用默认封面。
- albums (string)相册(字符串形式,格式与后台一致)。
- content (string)内容正文(HTML 字符串)。
- ext (string)扩展字段(JSON 字符串)。
- price (number)价格。
- status (number)状态。说明:后端沿用后台逻辑,1 通常表示发布;若包含敏感词可能被转为待审核。
- source (number)来源。注:不传时后端默认设置为 2(API)。
- column_id (number)栏目 ID。注:外部入库接口不需要传入;后端会根据 column_name 自动填充。
- slug (string)自定义 slug(可选)。
- author (string)作者。
- enable_reply (number)是否允许互动/评论。注:沿用后台含义,通常 2 允许,1 不允许。
- password (string)访问密码(可选)。
3.2.2 示例请求体
{ "column_name": "测试栏目", "title": "外部入库标题", "content": "<p>这是一篇通过外部接口入库的文章</p>", "status": 1, "tags": "api,import" }
3.3 curl 示例
curl -X POST 'http://127.0.0.1:8080/api/api_content_post' \ -H 'Content-Type: application/json' \ -H 'XToken: YOUR_EXTERNAL_TOKEN' \ -d '{ "column_name": "测试栏目", "title": "外部入库标题", "content": "<p>这是一篇通过外部接口入库的文章</p>", "status": 1, "tags": "api,import" }'
4. 响应
- 成功:HTTP 200返回结构与系统统一响应保持一致(data 可能为空)。
- 失败(常见):401 Unauthorized:XToken 缺失或无效(无法匹配用户)。422 Unprocessable Entity:参数校验失败,例如 column_name 或 title 为空。
5. 注意事项
- 外部入库 Token 属于敏感凭证,请妥善保管。
- 外部入库用户令牌属于敏感凭证,请妥善保管。
- 任何人只要拿到有效的 XToken 即可通过该接口入库内容,建议:定期刷新 Token。外部系统侧加密存储 Token。必要时通过网络层(白名单/网关)进一步限制访问来源。