在安企CMS中管理和展示大量内容时,如何精准地筛选出特定分类下的文章,是提升网站内容组织性和用户体验的关键一环。安企CMS提供了强大且灵活的接口,让我们可以轻松实现这一目标。本文将详细介绍如何通过安企CMS的文档列表接口,仅显示您希望的特定分类文章。
掌握文档列表接口:内容筛选的核心
要筛选特定分类下的文章,我们需要利用安企CMS提供的 /api/archive/list 接口。这个接口是获取网站文档列表的核心,它允许您通过多种参数来精确控制返回的文章集合。
该接口的调用方法是 GET,这意味着您可以通过URL参数来传递筛选条件。其中,categoryId 参数就是我们实现按分类筛选文章的关键。
理解 categoryId 参数
categoryId 参数允许您指定一个或多个分类的ID,接口会返回属于这些分类的文章。
- 单一分类筛选:如果您只想显示某个具体分类下的文章,可以直接传递该分类的ID。例如,如果您想获取ID为
10的分类下的文章,请求参数中就可以包含categoryId=10。 - 多分类筛选:如果您希望同时显示多个分类下的文章,
categoryId参数也支持以逗号,分隔的形式传递多个分类ID。例如,要获取ID为10、12和15的分类下的文章,您可以设置categoryId=10,12,15。
构建您的筛选请求
除了 categoryId,在实际应用中,通常还需要配合其他参数来构建完整的请求,以确保获取到您真正需要的内容。
moduleId(模型ID):文档通常会归属于特定的模型(如文章模型、产品模型等)。为了更精确地筛选,建议您也指定moduleId。例如,moduleId=1表示获取文章模型下的文档。type(列表类型):当您需要获取分页列表并显示总数时,通常会将type设置为page。如果只是想简单列出指定数量的文档,type可以省略或设置为list。child(子分类包含):一个分类可能包含多个子分类。如果您希望不仅显示当前分类的文章,还包括其所有子分类的文章,可以将child参数设置为true。默认情况下,安企CMS通常会包含子分类,但明确指定child=false可以只获取当前分类直属的文章,而不包含其子分类的内容。limit和page(分页控制):为了控制每页显示的文章数量和获取特定页码的内容,可以分别使用limit和page参数。例如,limit=10&page=1表示获取第一页的10篇文章。
一个完整的请求示例可能看起来像这样:
{域名地址}/api/archive/list?moduleId=1&categoryId=10,12,15&type=page&limit=10&page=1&child=true
这条请求的含义是:获取文章模型(moduleId=1)下,分类ID为 10、12 和 15(包含子分类)的文章,以分页形式展示,每页10条,获取第一页的内容。
解析返回结果
当您发送请求后,安企CMS会返回一个JSON格式的响应。成功的响应通常会包含 code: 0 和一个 data 字段,其中 data 字段就是一个包含符合筛选条件文章的数组。每篇文章对象中都会包含 id、title、description、category_id 等详细信息,您可以根据这些信息在前端进行展示。
通过检查返回数据的 category_id 字段,您可以验证接口是否按照您的预期进行了筛选。此外,如果 type 参数设置为 page,响应中还会包含一个 total 字段,告诉您符合条件的文档总数,这对于实现分页功能非常有帮助。
小结
通过灵活运用 archive/list 接口及其 categoryId 参数,您可以精准地控制安企CMS网站上内容的展示。无论是构建分类列表、特定专题页面,还是实现更复杂的筛选功能,这个接口都能提供坚实的支持。结合 moduleId、type 和 child 等参数,您可以创建出功能丰富且用户友好的内容展示页面。
常见问题 (FAQ)
1. 如何获取分类的 categoryId?
您可以通过调用 /api/category/list 接口来获取所有分类的列表,其中每个分类都会包含 id 字段,这就是您需要的 categoryId。您也可以通过 /api/category/detail 接口,传入分类名称(catname 或 filename)来获取单个分类的详细信息,其中也包含了 id。
2. 我想显示某个分类下的文章,但是不包括子分类的文章,应该怎么做?
在调用 /api/archive/list 接口时,将 child 参数设置为 false 即可。例如:categoryId=10&child=false。这样,接口将只返回直接属于ID为 10 的分类的文章,而不会包含其下属子分类的文章。
3. 如果我需要排除某些分类的文章,而不是只显示特定分类的文章,该如何操作?
安企CMS的 /api/archive/list 接口还提供了一个 excludeCategoryId 参数。您可以将需要排除的分类ID以逗号 , 分隔的形式传递给这个参数。例如,excludeCategoryId=10,12 将会返回所有文章,但排除掉属于ID为 10 和 12 分类的文章。