在一个http请求中多次调用相同的GraphQL突变操作[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一个http请求中多次调用相同的GraphQL突变操作[重复]相关的知识,希望对你有一定的参考价值。

我正在使用GitHub v4 API(GraphQL)。我想知道我是否可以在一个http请求中多次发送相同的变异操作*。

*(具有c的不同参数)

例如,假设我要在一个http请求中创建3个标签,或者在一个请求中更新10个问题。相关的API突变为createLabelupdateIssue。如果每个http请求仅做一次突变,就可以使它起作用。但是,我找不到正确的语法定义,该语法允许在同一个http请求中多次调用同一变异。可能吗?

这里是一个示例查询,适用于每个请求一个突变:


  "query": "mutation CreateLabel1 
              createLabel(input: color:\"FF0000\", name:\"TESTING\", repositoryId:\"ID\") 
                label 
                  id
                
              
            "

PS:假设我自己在没有第三方graphql库的帮助下构造了字符串。

编辑由于我的声誉不到15分,因此无法回答我的问题。但是,我想留下一个带有原始语法的示例,以便将来我/他人更好地理解它。

特别感谢@DanielRearden指向正确的位置。我知道我在某个地方读过它,但是在摆弄我的代码后我忘了它。阅读链接@DanielRearden和this one的别名。

示例语法:


  "query": "mutation CreateLabel1 
              label1: createLabel(input: color:\"FF0000\", name:\"TESTING1\", repositoryId:\"ID\") 
                label 
                  id
                
              
              label2: createLabel(input: color:\"FF0000\", name:\"TESTING2\", repositoryId:\"ID\") 
                label 
                  id
                
              
            "

这里label1label2是别名,也将出现在响应JSON中。

答案

您可以做这样的事情

mutation 
  mutation1(input:  ... )  ... 
  mutation2(input:  ... )  ... 


您还可以在本文中阅读有关批处理突变的更多信息-https://medium.com/@xuorig/graphql-mutation-design-batch-updates-ca2452f92833

以上是关于在一个http请求中多次调用相同的GraphQL突变操作[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用动态别名在单个请求中多次调用 GraphQL 突变

GraphQL 突变为嵌套响应返回 null

我可以通过 graphQL 查询多次查询 GraphQL 单一响应吗?

使用输入对象的graphql突变

meteor apollo graphql/sequelize 缓存查询结果,避免多次相同查询

通用服务,了解我是在 GRAPHQL 上下文还是 HTTP 上下文中?