模拟一个分页的 JSON API 响应

一个 GET 模拟(mock),返回一页三个假记录,以及 page、per_page、total 和 next。

此模板返回分页的 JSON 集合的一页 —— 三条假记录与 page、per_page、total 和 next 并列 —— 这样您就可以在真实端点存在之前构建列表渲染、无限滚动或分页客户端。记录在每次调用时重新生成,这对于测试不能假定稳定排序的代码来说是个很好的测试。

代替第三方 API 端点。

响应负载

{"data":[{"id":"{{faker.uuid}}","name":"{{faker.name}}","email":"{{faker.email}}"},{"id":"{{faker.uuid}}","name":"{{faker.name}}","email":"{{faker.email}}"},{"id":"{{faker.uuid}}","name":"{{faker.name}}","email":"{{faker.email}}"}],"page":1,"per_page":3,"total":42,"next":"{{mock.url}}?page=2"}

值得了解的字段

字段 含义
data 通过 {{faker.*}} 令牌生成的虚假记录数组,每次调用三个。
page 当前页码,硬编码为 1。
per_page 页面大小,硬编码为 3。
total 所有页面的总记录数,硬编码为 42。
next 下一页的 URL,由 {{mock.url}} 令牌构建,以便它指向此模拟。

创建模拟数据

curl -X POST https://quickmock.dev/api/mocks \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "GET",
  "response_status": 200,
  "content_type": "application/json",
  "response_body": "{\"data\":[{\"id\":\"{{faker.uuid}}\",\"name\":\"{{faker.name}}\",\"email\":\"{{faker.email}}\"},{\"id\":\"{{faker.uuid}}\",\"name\":\"{{faker.name}}\",\"email\":\"{{faker.email}}\"},{\"id\":\"{{faker.uuid}}\",\"name\":\"{{faker.name}}\",\"email\":\"{{faker.email}}\"}],\"page\":1,\"per_page\":3,\"total\":42,\"next\":\"{{mock.url}}?page=2\"}"
}'

调用它

curl https://quickmock.dev/m/<slug>

您将获得什么

GET /m/<slug> -> 200 a paginated list of 3 fake records
page/per_page/total/next describe the rest of the collection

这与真实情况有何不同

这三条记录是随机的并且在每次调用时重新生成,而不是来自稳定的数据集,并且 next 指回此模拟本身,而不是真实的第二页。

来源

常见问题解答

next 链接实际有效吗?
它是可跟随的:next 由 {{mock.url}} 令牌构建,因此它解析为此模拟自身的地址。跟随它会再次返回相同的页面而不是第二页 —— 关于如何链接真实的第二页,请参阅下一个问题。
我该如何模拟第二页?
创建第二个模拟,将其 page 设置为 2 并提供自己的 next 值,然后将第一个模拟的 next 指向它。两个链接的模拟足以测试您的客户端是否在末尾停止而不是循环。
为什么记录在调用之间会改变?
在每次请求时,它们都会用 faker 令牌新鲜生成。这是故意为之的:按数组索引而不是按 id 键入列表项的客户端会明显崩溃,这正是值得尽早捕获的错误。

准备好使用了吗?

在模拟构建器中打开以先进行调整

与本指南非常搭配: 返回逼真的假数据

相关模板

← 所有模板

最后更新: 2026-10-17