【发布时间】:2021-02-08 21:23:43
【问题描述】:
我有一个 nuxtjs 应用程序,它使用 apollo 模块与 FaunaDB 进行 graphql 通信。 我想在一个事务中对 FaunaDB 进行多个突变。所以我不想为每个突变向 FaunaDB 发送不同的请求,我想发出一个包含所有突变的请求。有可能吗?
【问题讨论】:
标签: transactions graphql nuxt.js apollo-client vue-apollo
我有一个 nuxtjs 应用程序,它使用 apollo 模块与 FaunaDB 进行 graphql 通信。 我想在一个事务中对 FaunaDB 进行多个突变。所以我不想为每个突变向 FaunaDB 发送不同的请求,我想发出一个包含所有突变的请求。有可能吗?
【问题讨论】:
标签: transactions graphql nuxt.js apollo-client vue-apollo
是的,GraphQL 支持交易
有a graphql guide关于多个领域的突变。
还有一个stackoverflow 的答案。
多重突变与 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
}
});
【讨论】: