在网站内容管理中,我们常常需要动态地展示某一类内容的最新更新,例如新闻文章、产品发布或是博客动态。对于使用 AnQiCMS 搭建的网站而言,借助其提供的强大 API 接口,获取指定模型下的最新文档列表是一项非常基础且实用的操作。这不仅能帮助开发者快速构建动态页面,也能为用户提供及时更新的信息,优化网站的用户体验。
要实现这一功能,我们主要会用到 AnQiCMS 提供的 /api/archive/list 文档列表接口。这个接口设计得非常灵活,通过组合不同的参数,我们可以精确地筛选、排序并获取所需的内容。
理解 archive/list 接口
首先,我们来了解一下这个核心接口。它的调用地址通常是 {域名地址}/api/archive/list,并通过 GET 方法发送请求。这里的 {域名地址} 需要替换成您实际的网站域名,例如 https://www.anqicms.com/api/archive/list。
这个接口有很多参数,但为了获取指定模型下的最新文档列表,我们需要特别关注以下几个:
moduleId(模型 ID):这是请求中必不可少的一个参数。每个在 AnQiCMS 后台创建的内容模型(例如“文章”、“产品”等)都有一个唯一的数字 ID。通过指定moduleId,我们告诉系统我们想获取的是哪个模型下的文档。order(排序方式):这是实现“最新”效果的关键。AnQiCMS 支持根据多个字段进行排序,其中与时间相关的有created_time(发布时间)和updated_time(更新时间)。为了获取最新内容,我们会将其设置为created_time desc或updated_time desc,其中desc表示降序排列,即最新的在前。limit(显示数量):这个参数用来控制您希望获取多少条最新文档。例如,如果您想显示最近的 5 篇文章,就可以设置limit=5。如果需要从某一条记录开始获取一定数量的数据,也可以使用offset,limit的格式,比如limit=2,10表示从第 3 条开始获取 10 条数据。type(列表类型):默认情况下,type的值为list,它会直接返回指定数量的文档。如果您需要进行分页展示(例如,显示总页数或总条数),则可以将type设置为page,此时配合page参数可以获取指定页码的内容。不过,对于简单的“最新列表”需求,保持默认的type=list即可。
实际操作示例
假设您的“文章”模型的 moduleId 是 1,您现在想获取该模型下最新发布的 5 篇文章。您可以通过以下方式构造 API 请求:
GET {您的域名}/api/archive/list?moduleId=1&order=created_time desc&limit=5
当您发送这个 GET 请求后,AnQiCMS 将会返回一个 JSON 格式的数据。成功的情况下,code 字段会是 0,而 data 字段则会包含您请求的文档列表。
返回的数据结构大致如下:
{
"code": 0,
"data": [
{
"id": 101,
"created_time": 1705000000, // 较新的发布时间
"updated_time": 1705000050, // 较新的更新时间
"title": "AnQiCMS新功能发布:AI智能写作模块上线!",
"description": "详细介绍AnQiCMS最新推出的AI智能写作功能,帮助您高效创作内容。",
"module_id": 1,
"category_id": 5,
"views": 120,
"thumb": "https://yourdomain.com/uploads/images/ai-feature.webp",
"link": "https://yourdomain.com/news/101.html",
// ... 其他文档信息
},
{
"id": 100,
"created_time": 1704900000,
"updated_time": 1704900030,
"title": "AnQiCMS 3.0版本更新日志",
"description": "回顾AnQiCMS 3.0版本的各项优化与改进,提升您的使用体验。",
"module_id": 1,
"category_id": 1,
"views": 150,
"thumb": "https://yourdomain.com/uploads/images/version-3.0.webp",
"link": "https://yourdomain.com/news/100.html",
// ... 其他文档信息
}
// ... 剩余3条最新文档
],
"msg": ""
}
在返回的 data 数组中,每一项都是一个文档对象。您可以轻松从中提取 title(标题)、description(简介)、thumb(缩略图)、link(文档链接)等信息,并将其呈现在您的网站或应用界面上。created_time 和 updated_time 字段是以 Unix 时间戳的形式返回的,您可以将其转换为可读的日期格式。
实用技巧与**实践
- 明确
moduleId: 在您的 AnQiCMS 后台,进入“内容模型”管理界面,可以查看到每个模型的 ID。确保您使用的moduleId是正确的。 - 灵活运用
order参数: 除了created_time desc,您还可以尝试updated_time desc来获取最近修改的文档,或者views desc来获取热门文档。 - 适度设置
limit: 根据页面布局和内容展示需求,合理设置limit值,避免一次性请求过多数据,影响加载速度。 - 错误处理机制: 在前端或后端代码中集成 API 调用时,务必检查返回的
code字段。如果code不为0,则表示请求失败,此时可以通过msg字段获取错误原因,并进行相应的处理或提示。
通过上述方法,您可以轻松地利用 AnQiCMS 的 API 获取任何指定内容模型下的最新文档列表,为您的网站或应用注入活力。
常见问题 (FAQ)
Q1: 我如何知道我的内容模型的 moduleId 是什么?
A1: 您可以在 AnQiCMS 后台管理界面找到 moduleId。通常在“系统设置”或“内容模型”相关菜单中,每个模型都会显示其对应的 ID。例如,点击某个内容模型的编辑页面,URL 中或模型名称旁边通常会标注该模型的 ID。您也可以通过调用 /api/module/list 接口获取所有内容模型的列表,其中会包含 id 和 title 字段。
Q2: 如果我需要获取某个分类(而不是整个模型)下的最新文档,应该怎么操作?
A2: 如果您只想获取某个特定分类下的最新文档,可以在 archive/list 接口中额外增加 categoryId 参数,并将其值设置为目标分类的 ID。例如,GET {您的域名}/api/archive/list?moduleId=1&categoryId=10&order=created_time desc&limit=5 会获取模型 ID 为 1、分类 ID 为 10 的最新 5 篇文章。您可以在 AnQiCMS 后台的“分类管理”中找到对应分类的 ID。
Q3: 如何确保我的网站能持续获取到最新内容,而不会因为 API 请求频率过高导致问题? A3: 对于频繁访问的“最新文档”列表,建议在您的服务器端或前端(根据实际情况)实施缓存机制。例如,每隔 5-10 分钟请求一次 API 更新数据,然后将数据缓存起来供用户访问,而不是每次页面加载都直接请求 API。这样可以显著降低 API 请求压力,同时提高页面加载速度。