如何将多个游标传递给具有多个节点ID的单个GitHub GraphQL查询?

如何将多个游标传递给具有多个节点ID的单个GitHub GraphQL查询?,graphql,github-api,github-graphql,Graphql,Github Api,Github Graphql,我正在尝试批处理GraphQL查询,以从具有相同请求的多个存储库中检索所需的数据,其中每个存储库都有不同的游标 假设我有3个节点的ID,只有2个具有以下映射的游标: NODE_ID_1 <-> CURSOR_X NODE_ID_2 <-> Empty Node_ID_3 <-> CURSOR_Y 您可以通过在节点上迭代并将它们映射到一个字段名(如nodeX)来使用: { 节点1:节点(id:“MDEwOlJlcG9zaXRvcnkxMDQ4MzQ4”){ …

我正在尝试批处理GraphQL查询,以从具有相同请求的多个存储库中检索所需的数据,其中每个存储库都有不同的游标

假设我有3个节点的ID,只有2个具有以下映射的游标:

NODE_ID_1 <-> CURSOR_X
NODE_ID_2 <-> Empty
Node_ID_3 <-> CURSOR_Y
您可以通过在节点上迭代并将它们映射到一个字段名(如
nodeX
)来使用:

{
节点1:节点(id:“MDEwOlJlcG9zaXRvcnkxMDQ4MzQ4”){
…在存储库上{
…回购
}
}
node2:node(id:“MDEwOlJlcG9zaXRvcnkyMzE5NDk4”){
…在存储库上{
…回购
}
}
节点3:节点(id:“MDEwOlJlcG9zaXRvcnkyMzI1Mjk4”){
…在存储库上{
…回购
}
}
}
存储库上的片段Repo{
名称
}
输出:

{
“数据”:{
“节点1”:{
“名称”:“DROP5.0”
},
“节点2”:{
“名称”:“地下”
},
“节点3”:{
“名称”:“linux”
}
}
}
对于光标值,只需将字段名映射到节点id和光标值:

{
节点1:节点(id:“MDEwOlJlcG9zaXRvcnkyMzE5NDk4”){
…在存储库上{
名称
天文学家(第一:1,在“Y3VYC29YONYYZR1P”之后){
页面信息{
结束光标
}
边缘{
斯塔雷达
}
}
}
}
node2:node(id:“MDEwOlJlcG9zaXRvcnkxMDQ4MzQ4”){
…在存储库上{
名称
观星者(第一个:1,后面:空){
页面信息{
结束光标
}
边缘{
斯塔雷达
}
}
}
}
节点3:节点(id:“MDEwOlJlcG9zaXRvcnkyMzI1Mjk4”){
…在存储库上{
名称
天文学家(第一:1,在“Y3Vyc29yOnYyOpIAzQzi”之后){
页面信息{
结束光标
}
边缘{
斯塔雷达
}
}
}
}
}
在这种情况下,您的输入映射如下所示:

输入={
“节点1”:{
“id”:“MDEwOlJlcG9zaXRvcnkyMzE5NDk4”,
“游标”:“Y3VYC29YONYYZR1P”
},
“节点2”:{
“id”:“MDEwOlJlcG9zaXRvcnkxMDQ4MzQ4”,
“游标”:空
},
“节点3”:{
“id”:“MDEwOlJlcG9zaXRvcnkyMzI1Mjk4”,
“光标”:“Y3VYC29YONYYZQZI”
}
}
使用变量:

query($id1:ID!,$cursor1:String,$id2:ID!,$cursor2:String,$id3:ID!,$cursor3:String){
节点1:节点(id:$id1){
…在存储库上{
名称
观星者(第一名:1,第二名:$cursor1){
页面信息{
结束光标
}
边缘{
斯塔雷达
}
}
}
}
节点2:节点(id:$id2){
…在存储库上{
名称
观星者(第一名:1,第二名:$cursor2){
页面信息{
结束光标
}
边缘{
斯塔雷达
}
}
}
}
节点3:节点(id:$id3){
…在存储库上{
名称
观星者(第一名:1,第二名:$cursor3){
页面信息{
结束光标
}
边缘{
斯塔雷达
}
}
}
}
}
变量:

{
“id1”:“MDEwOlJlcG9zaXRvcnkyMzE5NDk4”,
“游标1”:“Y3VYC29YONYYZR1P”,
“id2”:“MDEwOlJlcG9zaXRvcnkxMDQ4MzQ4”,
“游标2”:空,
“id3”:“MDEwOlJlcG9zaXRvcnkyMzI1Mjk4”,
“游标3”:“Y3Vyc29yOnYyOpIAzQzi”
}
query {
  nodes(ids: ["NODE_ID_1", "NODE_ID_2", "NODE_ID_3"]) {
    ... on Repository {
      databaseId
      stargazers(first: 100, after:???) {
        pageInfo {
          endCursor
        }
        edges {
          starredAt
        }
      }
    }
  }
}