模拟一个分页的 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