我找不到一个模式的例子,其中突变嵌套在它自己的解析器中,以便在子突变对象中对某些操作进行分组。
这样的事情:
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
将只有无穷无尽的类似功能列表(如create
,delete
等)
这不是REST中的一件事吗?每个功能都是它自己的端点?但是它更好,因为你有HTTP方法。因此,您将拥有/user
端点,其中包含POST
和DELETE
方法,等等。