首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用大量用例在GraphQL中创建突变

用大量用例在GraphQL中创建突变
EN

Stack Overflow用户
提问于 2018-04-12 04:28:56
回答 1查看 480关注 0票数 1

我是GraphQL的新手,在GraphQL (特别是graphene-python)中创建突变方面需要一些建议(最佳实践)。假设我们有一些Task和一个User。现在我想要创建Task突变,它包括三种情况:

  1. 创建Task
  2. 创建Task并将现有的User分配给此Task
  3. 创建Task并将新创建的User分配给此Task

那么,这是将其实现为一个QraphQL“入口点”的一个好主意,还是为第三种情况(可能)创建另一个突变更好呢?

代码语言:javascript
复制
      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中各自的突变

代码语言:javascript
复制
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) 
EN

回答 1

Stack Overflow用户

发布于 2018-04-12 16:57:17

对于3.,如果发现您无论如何都需要一个createUser突变,那么从两个单独的突变开始将是一个更简单的实现:

  1. createUser
  2. createTask (使用从createUser返回的用户)

但是,您将无法将这两个突变合并到一个HTTP请求中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49788006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档