如何在 Apollo GraphQL 中发出 foreach 请求?
How to make a foreach request in Apollo GraphQL?
我在 javascript 中有一个博客,我正在使用 Apollo GraphQL 来保存我的数据。我打算制作一个包含所有类别的六个帖子的列表。像这样:
[
technology: [
post1,
post2,
...
],
cook: [
post1,
post2,
...
],
...
]
但我做不到。我考虑获取所有类别的 ID 并提出一个大请求,如下所示:
{
firstCategory: allPosts(where: {category: "firstId"}, first: 6) {
...fields
}
secondCategory: allPosts(where: {category: "secondId"}, first: 6) {
...fields
}
}
但是如果我添加一个新类别,我必须更改我的代码。
您可以将 [先前查询的] 类别作为变量传递,例如:
query posts($firstCat: String, $secondCat: String, $limit: Int) {
firstCategory: allPosts(where: {category: $firstCat}, first: $limit) {
...fields
}
secondCategory: allPosts(where: {category: $secondCat}, first: $limit) {
...fields
}
}
变量:
{
"firstCat": "technology",
"secondCat": "cook",
"limit": 6
}
当然还是限于n个准备好的别名
构建动态别名是可能的,但不建议 - source ... 应使用 AST 工具作为粘合字符串(直接或使用文字)被视为 滥用 GraphQL.
您也可以解构此组件,多个 <Category name="technology" />
组件具有自己的内部查询(使用 props.name
作为类别过滤器变量)。这将提出单独的请求。
出于速度和 SEO 目的,您可以使用 gatsby(单独请求的数量无关紧要......达到一定规模) - 但是(与所有静态生成器一样)它需要 rebuild/redeploy 进行更改。
好 API 应该让您查询每个标签和相关帖子(按任何标准排序;...和作者[和他的帖子] ...等等 - 这是一个标准的 GraphQL 功能)。
我在 javascript 中有一个博客,我正在使用 Apollo GraphQL 来保存我的数据。我打算制作一个包含所有类别的六个帖子的列表。像这样:
[
technology: [
post1,
post2,
...
],
cook: [
post1,
post2,
...
],
...
]
但我做不到。我考虑获取所有类别的 ID 并提出一个大请求,如下所示:
{
firstCategory: allPosts(where: {category: "firstId"}, first: 6) {
...fields
}
secondCategory: allPosts(where: {category: "secondId"}, first: 6) {
...fields
}
}
但是如果我添加一个新类别,我必须更改我的代码。
您可以将 [先前查询的] 类别作为变量传递,例如:
query posts($firstCat: String, $secondCat: String, $limit: Int) {
firstCategory: allPosts(where: {category: $firstCat}, first: $limit) {
...fields
}
secondCategory: allPosts(where: {category: $secondCat}, first: $limit) {
...fields
}
}
变量:
{
"firstCat": "technology",
"secondCat": "cook",
"limit": 6
}
当然还是限于n个准备好的别名
构建动态别名是可能的,但不建议 - source ... 应使用 AST 工具作为粘合字符串(直接或使用文字)被视为 滥用 GraphQL.
您也可以解构此组件,多个 <Category name="technology" />
组件具有自己的内部查询(使用 props.name
作为类别过滤器变量)。这将提出单独的请求。
出于速度和 SEO 目的,您可以使用 gatsby(单独请求的数量无关紧要......达到一定规模) - 但是(与所有静态生成器一样)它需要 rebuild/redeploy 进行更改。
好 API 应该让您查询每个标签和相关帖子(按任何标准排序;...和作者[和他的帖子] ...等等 - 这是一个标准的 GraphQL 功能)。