Skip to content

Latest commit

 

History

History
89 lines (76 loc) · 2.35 KB

File metadata and controls

89 lines (76 loc) · 2.35 KB

API 文档

最近瞬间接口

获取最近瞬间列表

接口地址: GET /recent-moments.json

功能描述: 获取最近发布的瞬间列表,包含logo、标题、日期和心情字段

请求示例:

# 获取最近10条瞬间
GET /recent-moments.json

响应格式:

{
  "success": true,
  "data": [
    {
      "logo": "🎉",
      "title": "瞬间标题",
      "date": "2024-01-15",
      "mood": "开心 兴奋"
    },
    {
      "logo": "📝",
      "title": "另一个瞬间",
      "date": "2024-01-14",
      "mood": "平静"
    }
  ],
  "count": 2,
  "generatedAt": "2024-01-15T10:30:00.000Z"
}

字段说明:

  • logo: 瞬间的图标,可能是emoji、文件URL或外部URL
  • title: 瞬间的标题
  • date: 瞬间的日期(ISO格式:YYYY-MM-DD)
  • mood: 瞬间的心情标签,多个心情用空格分隔
  • generatedAt: 数据生成时间(ISO格式)

错误响应:

{
  "success": false,
  "error": "错误描述",
  "message": "详细错误信息",
  "generatedAt": "2024-01-15T10:30:00.000Z"
}

HTTP状态码:

  • 200: 请求成功

静态构建支持

静态JSON页面

  • 地址: /recent-moments.json
  • 特点: 在构建时生成静态JSON文件,完全支持静态部署
  • 优势:
    • 无需服务器运行时环境
    • 可以部署到CDN
    • 访问速度更快
    • 支持静态托管
    • 完全兼容静态导出模式(output: export
    • 构建时获取数据,部署后数据固定

技术实现:

  • 复用现有的 getMoments 函数,避免重复请求Notion API
  • 在获取完整数据后,通过 slice()map() 方法提取所需字段
  • 在构建时生成静态JSON文件
  • 这种方式确保数据一致性,并减少对Notion API的请求次数

注意事项:

  1. 该接口只返回状态为"发布"的瞬间
  2. 默认返回最近90天内的瞬间
  3. 结果按日期降序排列(最新的在前)
  4. 如果瞬间没有图标,logo字段将为空字符串
  5. 如果瞬间没有标题,title字段将为空字符串
  6. 如果瞬间没有心情标签,mood字段将为空字符串
  7. 该接口与主页面使用相同的数据源,确保数据一致性
  8. 固定返回最近10条记录
  9. 完全兼容静态导出模式(output: export
  10. 数据在构建时获取,部署后不会自动更新