目标
本篇关注“接口数据怎么安全、稳定地写入数据库”,用于:
- 对接外部系统同步内容
- 批量导入文章/栏目
- 自定义后台或自动化发布
1. 入库对象划分
- 栏目(Column):slug、父子关系、模板、分页等
- 内容(Content):slug、所属栏目、标题、正文、扩展字段
- 标签(Tag):name/title/keywords
- 关联表(ContentTag):内容与标签多对多
2. 字段约束建议
- slug 全局唯一(建议对同一类型至少唯一)
- title 必填,content 可为空(但建议最小长度)
- status/source 等枚举字段要校验范围
- ext 建议存 JSON 字符串,入库前做 JSON 校验
3. 入库流程(推荐)
- 鉴权(Token/JWT/后台权限)
- 参数校验(必填/长度/枚举/格式)
- 业务校验(slug 是否冲突、column_id 是否存在)
- 事务写入(内容 + 关联表)
- 返回可幂等的结果(id/slug/更新时间)
4. 幂等与重复写入
建议以 slug 作为幂等键:
- 同 slug:更新内容(upsert)
- 不同 slug:新建内容
5. 常见注意事项
- 富文本内容:注意 XSS 过滤策略(后端统一处理)
- 附件/图片:建议先上传拿到 URL 再写入 content
- 批量导入:建议提供批次号与失败重试机制