apollo 客户端是不是支持事务?

Posted

技术标签:

【中文标题】apollo 客户端是不是支持事务?【英文标题】:Does apollo client support transactions?apollo 客户端是否支持事务? 【发布时间】:2021-02-08 21:23:43 【问题描述】:

我有一个 nuxtjs 应用程序,它使用 apollo 模块与 FaunaDB 进行 graphql 通信。 我想在一个事务中对 FaunaDB 进行多个突变。所以我不想为每个突变向 FaunaDB 发送不同的请求,我想发出一个包含所有突变的请求。有可能吗?

【问题讨论】:

【参考方案1】:

是的,GraphQL 支持交易

有a graphql guide关于多个领域的突变

还有一个*** 的答案。

多重突变与 vue-apollo 没有直接关系,它是 Apollo 客户端的一个特性。

答案在 GraphQL 层。

Apollo Clientdocumantation 有相关信息。

Vue-Apollo-todos 是突变的一个很好的例子。

在apollographql issues中有一个例子

graphql(gql`
  query UserQuery ($userId: ID!) 
    user(id: $userId) 
      # ... selection set
    
  

  query PostQuery($postId: ID!) 
    post(id: $postId) 
      # ... selection set
    
  

  mutation CreateUser ($createUserInput: CreateUserInput!) 
    createUser(data: $createUserInput) 
      # ... selection set
    
  

  mutation CreatePost ($createPostInput: CreatePostInput!) 
    createPost(data: $createPostInput) 
      # ... selection set
    
  
`, 
  props: ( data:  loading, user, post , createUser, createPost ) => 
    // ... do stuff with multiple operations
  
);

【讨论】:

以上是关于apollo 客户端是不是支持事务?的主要内容,如果未能解决你的问题,请参考以下文章

Apollo 客户端发送 OPTIONS 而不是 GET HTTP 方法

GitHub GraphQL API 的 Apollo 客户端响应不是 JSON 格式

错误:createNetworkInterface 不是 React Native 和 Apollo 客户端上的函数

Apollo GraphQL 客户端查询返回自省结果而不是数据

AngularJS 的 Apollo 客户端

测试 Apollo 客户端订阅