繁体   English   中英

graphql中的突变后查询

[英]Query after mutation in graphql

我想这应该很容易,但是经过长时间的网上搜索却找不到答案:

我只是试图让使用graphql然后刷新使用其他graphql查询数据的突变,我怎么能做到这一点里面只有一个HTTP(graphql)的要求吗?

尝试失败:

  1. 我尝试发送包装在一个数组中的两个graphql模式,使用批处理 ,但是它是异步的,并且查询在不需要的突变之前返回。
  2. 我试图使用突变编写相同的查询,但实际上并没有任何突变,并且在真正的突变之后提出了这个要求,但是我不认为这是针对此问题的优化解决方案。
  3. 另外,我知道apollo-client(react)有类似update (refetchQuery)之类的东西,但是如何在没有任何客户端框架的情况下做到这一点呢?

谢谢:)

相关链接:

如果我对您的理解正确,那么您想发送一个变异,并在同一请求/查询中发送一个查询,等待该变异完成后再解决。 从规范的角度来看,这是完全不可能的。 您可以在此处阅读规范(我知道技术规范听起来很吓人,但是如果您已经对GraphQL有点熟悉,那么就很容易阅读了:-))。

这个想法是,突变结果旨在潜在地返回已更新的数据。 我前一段时间读过一篇有关查询对象类型的文章。 本文重点介绍了该类型如何只是普通的对象类型,并且可以简单地在突变结果中返回它。 尽管我不建议使用这种模式,因为我认为突变结果应该明确列出所有更新的对象,但它确实是可能的,并且可以解决非常复杂的情况(例如您所描述的情况)。 为了使这一点更加直观,这里是一个示例架构:

type ExampleMutationResult {
  success: Boolean!
  query: Query!
}

type Query {
  queryField: String!
}

type Mutation {
  exampleMutation: ExampleMutationResult!
}

# Query would look like this
mutation example {
  exampleMutation {
    success
    query {
      queryField
    }
  }
}

如您所见,折衷是相对较高的,只有在可以更改架构时才能启用。 我将首先检查第二个HTTP请求的开销是否确实需要优化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM