如何利用`archive/list`的结果,配合`archiveDetail.md`实现点击查看文章详情?

📅 👁️ 130

在构建网站时,展示文章列表并允许用户点击查看文章详情是基本且核心的功能。安企CMS(AnQiCMS)提供了强大而灵活的API接口,让我们可以轻松实现这一需求。接下来,我们将探讨如何利用archive/list接口获取文章概要,再配合archive/detail接口在用户点击后展示完整的文章内容。

第一步:获取文章列表(archive/list

对于任何内容网站,首先需要一个文章列表页面,例如新闻中心、博客或产品展示页面。安企CMS的archive/list接口正是为此而设计。

当我们向{域名地址}/api/archive/list发送GET请求时,可以根据需求附加一些参数来筛选和排序文章。例如,如果我们想要获取某个特定模型(如文章模型)下的文章,并希望分页显示,可以这样设置参数:

  • moduleId:指定文章所属的模型ID。通常文章模型ID为1,产品模型ID为2。
  • type=page:这个参数非常重要,它告诉系统我们需要分页数据,这样接口会返回total字段,方便我们构建分页组件。
  • limit:控制每页显示的文章数量,例如limit=10表示每页10篇文章。
  • page:指定当前要获取的页码,例如page=1

当请求成功后,接口会返回一个包含文章列表的JSON数据。其中,data数组里的每一个对象都代表一篇文章的简要信息,包括idtitledescription(文章简介)、thumb(缩略图)、created_time(发布时间)以及一个非常实用的link字段。

在前端页面中,我们可以遍历这个data数组,为每篇文章生成一个列表项。每个列表项通常包含文章标题、缩略图、简介和发布时间。最关键的是,我们需要为每个标题或缩略图添加一个可点击的链接,让用户能够跳转到文章的详细页面。这里,item.link字段可以直接作为链接地址,因为它通常包含了完整的文章详情页URL。如果link字段不可用,我们也可以利用idurl_token来动态构建详情页URL。

例如,一个典型的列表项可能看起来像这样:

<div class="article-item">
    <a :href="item.link || '/detail?id=' + item.id">
        <img :src="item.thumb" :alt="item.title" />
        <h3>{{ item.title }}</h3>
    </a>
    <p>{{ item.description }}</p>
    <small>发布时间:{{ formatTime(item.created_time) }}</small>
</div>

在这个例子中,formatTime是一个将时间戳转换为可读格式的函数,item.link提供了直接的链接,如果不存在,则通过item.id构建一个备用链接。

第二步:点击查看文章详情(archive/detail

当用户在文章列表页点击某篇文章的链接时,页面会跳转到文章详情页。在文章详情页加载时,我们需要获取到当前文章的唯一标识(通常是文章ID或URL别名),然后调用安企CMS的archive/detail接口来获取该文章的完整内容。

archive/detail接口的调用方式也很直接,我们向{域名地址}/api/archive/detail发送GET请求,并传入以下关键参数之一:

  • id:文章的唯一ID,这是最常用的方式。
  • filename:文章的URL别名,也就是archive/list中返回的url_token字段。当使用友好URL时,这个参数非常方便。

例如,如果我们的详情页URL是/article-detail?id=123,那么就可以从URL中提取id=123,然后发起API请求:GET {域名地址}/api/archive/detail?id=123

接口成功响应后,返回的JSON数据中会包含该文章的所有详细信息,包括title(标题)、seo_titlekeywordsdescription(简介)、views(浏览量)等,以及最重要的data.content字段,它包含了文章的HTML格式的完整内容。

在前端详情页,我们可以将这些数据渲染到相应的HTML元素中:

<div class="article-detail">
    <h1>{{ articleDetail.title }}</h1>
    <div class="meta-info">
        <span>发布时间:{{ formatTime(articleDetail.created_time) }}</span>
        <span>浏览量:{{ articleDetail.views }}</span>
    </div>
    <div class="article-content" v-html="articleDetail.data.content"></div>
</div>

这里,articleDetail是存储archive/detail接口返回数据的对象。通过v-html指令,我们可以直接将articleDetail.data.content中的HTML内容渲染到页面上,从而展示文章的完整排版和图片。

总结

通过archive/listarchive/detail这两个核心接口,安企CMS提供了一套高效、清晰的机制来管理和展示网站的文章内容。从列表页的快速浏览到详情页的深度阅读,整个流程都建立在标准化的API调用之上,无论是开发者还是内容运营人员,都能灵活运用,构建出用户体验良好的内容平台。


常见问题 (FAQ)

1. 如何实现文章列表的分页功能? 在调用archive/list接口时,您需要设置type=page,并配合limit(每页文章数量)和page(当前页码)参数。接口返回的total字段会告诉您总文章数量,您可以根据这个总数和limit值来计算总页数,从而构建前端的分页导航组件。每当用户点击不同的页码时,更新page参数并重新调用archive/list即可。

2. 为什么有时候archive/list返回的link字段是空的,我该怎么处理? link字段通常是安企CMS自动生成的友好URL,如果您的系统未开启友好URL或者文章未设置url_token,这个字段可能为空。此时,您可以使用文章的id或者url_token来手动拼接详情页的URL。例如,如果您的详情页路由是/article/:id/article/:url_token,那么在前端就可以这样构建链接:/article/ + item.id/article/ + item.url_token

3. archive/detail接口返回的data.contentdescription有什么区别? description字段是文章的简介或摘要,通常用于列表页或搜索引擎优化(SEO),内容相对简短。而data.content则是文章的完整主体内容,包含所有排版、图片、链接等,用于文章详情页的展示。两者各有其用途,在使用时应根据展示场景选择合适的字段。

相关文章

AnQiCMS文档列表接口是否支持对返回数据中的`extra`字段进行更复杂的查询?

在安企CMS中,文档内容管理的灵活性是一个备受关注的特点,特别是其对自定义字段(体现在接口返回的 `extra` 字段中)的支持,为网站运营者提供了极大的便利。当我们需要从大量文档中根据这些自定义属性进行筛选和查询时,自然会想到一个关键问题:安企CMS的文档列表接口 (`/api/archive/list`) 是否支持对返回数据中的 `extra` 字段进行更复杂的查询? 要回答这个问题

2025-11-09

如何使用`archive/list`接口,在前端动态加载更多文档(无限滚动)?

在现代网站设计中,无限滚动(Infinite Scrolling)已成为一种流行的内容加载方式,它能够显著提升用户体验,让访客在不间断地浏览内容时保持沉浸感。对于使用安企CMS(AnQiCMS)构建网站的用户来说,`archive/list` 接口正是实现这一功能的强大工具。通过巧妙地运用这个接口,我们可以让网站的文章、产品或其他文档内容在用户滚动页面时自动加载更多,带来如丝般顺滑的浏览体验

2025-11-09

`archive/list`接口返回的`canonical_url`和`fixed_link`字段,对SEO优化有何帮助?

在网站内容的海洋中,如何让我们的优质内容脱颖而出,被更多的潜在用户发现,是每位内容运营者持续探索的课题。搜索引擎优化(SEO)是实现这一目标的关键策略之一。而在SEO实践中,URL扮演着极其重要的角色。 安企CMS(AnQiCMS)在`archive/list`等接口返回的数据中,提供了`canonical_url`和`fixed_link`这两个字段,它们并非只是简单的链接

2025-11-09

如果AnQiCMS文档列表中没有找到符合条件的文档,`data`和`total`会返回什么?

在使用安企CMS(AnQiCMS)构建网站或应用时,我们经常需要通过其提供的 API 接口来获取各种内容,例如文档列表。当我们的查询条件未能匹配到任何内容时,API 会返回什么样的数据结构呢?特别是 `data` 和 `total` 这两个关键字段,它们的表现形式对于我们正确处理数据至关重要。今天,我们就来深入探讨一下,在文档列表中没有找到符合条件的文档时,安企CMS会给出怎样的响应。 ###

2025-11-09

如何实现一个“热门文章”或“最多浏览”列表,通过`order`参数实现?

在网站运营中,我们都希望能将最受欢迎、阅读量最高的文章展示给访问者,比如常见的“热门文章”或“最多浏览”列表。这不仅能有效引导用户发现更多精彩内容,提升网站的用户体验,也是内容运营中不可或缺的一环。在安企CMS中,实现这样的功能比你想象的要简单,秘诀就藏在文档列表接口`archive/list`的`order`参数中。 ### 巧用`order`参数

2025-11-09

`archive/list`接口在不传递任何参数时,默认的行为和返回内容是什么?

## 深入解析安企CMS `archive/list` 接口:不带参数时的默认行为与返回内容 在使用安企CMS(AnQiCMS)进行网站开发或内容管理时,我们经常需要通过API接口获取各种数据。`archive/list` 接口是获取网站文档列表的核心接口之一。理解它在不传递任何参数时的默认行为和返回内容,对于高效地进行数据获取和初步调试至关重要。 ### 接口地址与调用方式概览 首先

2025-11-09

当`moduleId`参数无效时,`archive/list`接口会返回什么错误提示?

在使用 AnQiCMS 构建网站时,`archive/list` 接口无疑是获取内容列表的核心工具。通过这个接口,我们可以灵活地筛选和展示各类文档,满足网站前端的动态内容需求。其中,`moduleId` 参数扮演着非常关键的角色,它允许我们指定希望获取特定内容模型(如文章、产品、新闻等)下的文档。 正常情况下,当您向 `archive/list` 接口传入一个有效的 `moduleId`

2025-11-09

GEO生成式引擎优化:2025年AI搜索时代的企业网站生存指南

GEO生成式引擎优化是2025年AI搜索时代企业网站必须掌握的新技能。本文详解GEO的核心策略,以及如何利用安企CMS进行AI搜索优化,抢占流量先机。

2026-06-11