页面限制
如何请求超过 50 个 JSON:API 资源。
JSON:API 每个页面最多只能获取 50 个资源。您可以阅读更多关于此决定的信息 此处。
当使用 Next.js 构建一个解耦站点时,在某些情况下,例如在 getStaticPaths
中,您可能希望获取超过 50 个资源。
我们在 next-drupal 中添加了一个符合规范的覆盖来绕过此限制。
⚠️
提示:如果您的站点具有大量页面,请考虑使用按需生成,使用 fallback: blocking
,而不是增加页面限制。
配置
要覆盖页面最大大小,请在您的 Drupal services.yml
文件中设置以下 参数
并清除缓存。
parameters: next_jsonapi.size_max: 100 // Set your max limit here.
现在您应该能够请求最多 100 个资源,**使用 path
字段作为稀疏字段集中第一个字段**。
示例
以下将返回 50 个项目(JSON:API 硬限制 - 无覆盖)
const articles = await drupal.getResourceCollection("node--article")
以下将返回 10 个项目(无覆盖)
const articles = await drupal.getResourceCollection("node--article", { "page[limit]": 10,})
以下将返回 100 个项目(使用 path
覆盖)
const articles = await drupal.getResourceCollection("node--article", { params: { "fields[node--article]": "path,title" }})
以下将返回 60 个项目(使用 path
覆盖)
const articles = await drupal.getResourceCollection("node--article", { params: { "fields[node--article]": "path,title", "page[limit]": 60, }})
以下将返回 100 个项目(next_jsonapi.size_max
硬限制 - 使用 path
覆盖)
const articles = await drupal.getResourceCollection("node--article", { params: { "fields[node--article]": "path,title", "page[limit]": 999, }})