GraphQL嵌套突变

时间:2018-04-13 08:25:08

标签: graphql

我找不到一个模式的例子,其中突变嵌套在它自己的解析器中,以便在子突变对象中对某些操作进行分组。

这样的事情:

schema {
  query: Query
  mutation: RootMutation
}

type RootMutation {
  user: UserMutation
  post: PostMutation
}

type UserMutation {
  create(user: UserInput!): User
  delete(id: ID!): Bool
}

type PostMutation {
  create(user: PostInput!): Post
  delete(id: ID!): Bool
}

查询将是这样的:

mutation CreateUser($u: UserInput!) {
  user {
    create($u) {
      id
    }
  }
}

我认为,这种方法完全适用于规范。那么为什么每个人都将突变设计为一流的功能呢?像这样:

type RootMutation {
  createUser(user: UserInput!): User
  deleteUser(id: ID!): Bool

  createPost(user: UserInput!): User
  deletePost(id: ID!): Bool
}

如果你在庞大的系统上做了很多动作,那么RootMutation将只有无穷无尽的类似功能列表(如createdelete等)

这不是REST中的一件事吗?每个功能都是它自己的端点?但是它更好,因为你有HTTP方法。因此,您将拥有/user端点,其中包含POSTDELETE方法,等等。

0 个答案:

没有答案