mcpField
A
api-pagination

api-pagination

github.com/aj-geddes开发373491 次安装34 周前更新
代码仓库

关于 api-pagination

用于实现分页策略的技能,帮助高效查询和浏览大型数据集。适合开发处理大量结果集的 API 和客户端界面的开发者。

主要功能

  1. 01偏移量/限制、游标和键集分页
  2. 02搜索结果分页
  3. 03响应格式指引
  4. 04性能与边界情况实践

适用场景

  1. 01为大型 API 集合分页
  2. 02构建搜索结果导航
  3. 03实现无限滚动界面
  4. 04降低查询和客户端内存开销

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill api-pagination

安装后在 Claude Code 中输入/api-pagination确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cursor-based-pagination.md
keyset-pagination.md
offsetlimit-pagination.md
pagination-response-formats.md
python-pagination-sqlalchemy.md
search-pagination.md
scripts/
validate-api.sh
templates/
api-scaffold.yaml

详细介绍

API 分页

目录

概述

实现可扩展的分页策略,以高效查询、浏览和优化大型数据集的性能。

适用场景

  • 返回大量资源
  • 实现搜索结果分页
  • 构建无限滚动界面
  • 优化大型数据集查询
  • 管理客户端应用程序中的内存
  • 缩短 API 响应时间

快速入门

最简可运行示例:

// Node.js offset/limit implementation
app.get('/api/users', async (req, res) => {
  const page = parseInt(req.query.page) || 1;
  const limit = Math.min(parseInt(req.query.limit) || 20, 100); // Max 100
  const offset = (page - 1) * limit;

  try {
    const [users, total] = await Promise.all([
      User.find()
        .skip(offset)
        .limit(limit)
        .select('id email firstName lastName createdAt'),
      User.countDocuments()
    ]);

    const totalPages = Math.ceil(total / limit);

    res.json({
      data: users,
      pagination: {
        page,
        limit,
        total,
        totalPages,
        hasNext: page < totalPages,
// ... (see reference guides for full implementation)

参考指南

references/ 目录中的详细实现:

指南内容
偏移量/限制分页偏移量/限制分页
基于游标的分页基于游标的分页
键集分页键集分页
搜索分页搜索分页
分页响应格式分页响应格式
Python 分页(SQLAlchemy)Python 分页(SQLAlchemy)

最佳实践

✅ 应该
  • 对大型数据集使用游标分页
  • 设置合理的最大限制(例如 100)
  • 在可行时包含总数
  • 提供导航链接
  • 记录分页策略
  • 使用索引字段进行排序
  • 适时缓存分页结果
  • 处理边缘情况(无结果)
  • 实现一致的分页格式
  • 对超大型数据集使用键集分页
❌ 不应该
  • 对数十亿行数据使用偏移量分页
  • 允许不受限制的页面大小
  • 对每个请求都统计行数
  • 不排序就进行分页
  • 在分页过程中更改排序顺序
  • 不使用游标进行深度分页
  • 对大型数据集跳过分页
  • 直接暴露数据库分页方式
  • 混用分页策略
  • 忽视性能影响

评论

支持 Markdown