我是GraphQL的新手,在GraphQL (特别是graphene-python)中创建突变方面需要一些建议(最佳实践)。假设我们有一些Task和一个User。现在我想要创建Task突变,它包括三种情况:
Task。Task并将现有的User分配给此Task。Task并将新创建的User分配给此Task。那么,这是将其实现为一个QraphQL“入口点”的一个好主意,还是为第三种情况(可能)创建另一个突变更好呢?
mutation {
createTask(taskTitle: "Do some stuff"){
task {
id
}
}
}
mutation {
createTask(taskTitle: "Do some stuff",
user: {id: "ggdf00askladnl42"}){
task {
id
}
}
}
mutation {
createTask(taskTitle: "Do some stuff",
user: {email: "j.doe@example.com", fullName: "John Doe"}){
task {
id
}
}
}和graphene-python中各自的突变
class CreateTODO(graphene.Mutation):
class Arguments:
task_title = graphene.NonNull(graphene.String)
user = UserInput()
task = graphene.Field(lambda: Task)
def mutate(self, info, task_title, user=None):
#
# Do some stuff here
#
return CreateTODO(task=task) 发布于 2018-04-12 16:57:17
对于3.,如果发现您无论如何都需要一个createUser突变,那么从两个单独的突变开始将是一个更简单的实现:
createUsercreateTask (使用从createUser返回的用户)但是,您将无法将这两个突变合并到一个HTTP请求中。
https://stackoverflow.com/questions/49788006
复制相似问题