前台要取文档列表和分类,接口该怎么调

前台要取文档列表和分类,接口该怎么调?顺序是「先分类、再列表、后详情」:先把分类树与标签列表各取一次放在缓存里,列表接口按分类标识加分页参数翻页,用户点进某条数据时再用详情接口取正文与自定义字段。这套顺序的好处是请求可复用,首页与栏目页不会因为每屏都重新拉分类而多打几次接口。文档列表、详情、分类与标签属于后台对外提供的高频 API 调用能力,具体参数在接口文档里可以自查。

先列要取的数据

写调用代码之前,把页面需要的数据列成一张表,避免在模板里现加请求。

页面位置 要取的数据 调用顺序 是否可缓存
全站导航 分类树 先取,站点初始化时一次 是
栏目列表页 该分类下文档列表与总数 用分类标识加分页参数 短时间缓存
详情页 单篇正文与自定义字段 用列表返回的标识取详情 按需
标签聚合页 标签列表与标签下文档 先标签后列表 是
相关推荐 同分类最近文档若干条 复用列表接口换参数 是

列表与详情的调用顺序

列表接口常见错法有三种。第一种是把全部字段都取回来:列表页只要标题、摘要与时间,正文与自定义字段留到详情接口再取,每页字段越少响应越快。第二种是翻页参数不带分类条件,翻到第二页时把别的栏目的数据也带出来。第三种是拿详情接口当列表用,一页二十条就发二十次请求。

详情接口返回的字段以文档为单位,拆出来的自定义字段可以直接渲染规格表;同时要留意状态字段:正式文档与草稿、待发布走不同的可见范围,草稿链接带 preview 参数用于预览,前台列表默认只应取正式文档。回收站里的内容不参与列表,误删的正式文档可以从回收站恢复,不需要通过接口绕行。

分类与标签怎么关联

分类表达栏目层级,标签表达横向主题,两者都能作为列表接口的筛选条件。前台通常同时需要「某个分类下的文章」和「某篇文章属于哪些分类与标签」,前者用分类标识过滤,后者读详情返回的关联字段。分类树建议按层级一次取全,前端自己组装面包屑;标签数量多时先取热门标签,再按用户点击加载标签下的列表,避免首页一次拉全量。

批量写入时先查重

接口除了读取,也承担写入。内容迁移或批量补稿时,先按标题查询该文档是否已存在,再决定创建还是更新,这是导入接口的常规用法:文档内容导入走 /api/import/archive 这个入口,import 负责写入、archive 侧支持按标题查询是否已存在,用它做「先查后写」能避免同一篇文章出现两份。批量导入本身支持压缩包与表格两种来源,字段映射在导入前确认:标题、分类、标签、正文与摘要对应哪些列,映射错位比导入失败更难发现。

写入后确认三件事:前台列表能否取到新内容、详情接口返回的字段是否齐全、站点地图与推送是否覆盖新增地址。批量操作建议放在低峰时段,一次不要灌太多,分批校验更容易定位错误。

常见问题

接口需要登录吗? 读取公开内容的接口不需要;写入类调用需要按后台配置鉴权,凭据只放在服务端,不要暴露给浏览器脚本。

分页与筛选能同时用吗? 能,参数一起传即可。注意翻页时保持筛选条件不变,否则各页之间会出现重复或漏项。

前台能不能直接取全部文章自己做筛选? 少量内容可以,内容上千后应把筛选条件下沉到接口参数,由服务端过滤,否则首屏传输与渲染都会变慢。

导入接口写入的内容是草稿还是正式? 取决于调用时传的草稿标记。先写成草稿、核对排版与字段后再放开,比直接发布更安全。