【问题标题】:Passing Custom Types to an Apollo Mutation将自定义类型传递给 Apollo Mutation
【发布时间】:2017-08-26 08:02:08
【问题描述】:

有没有办法通过 Apollo 传递自定义 GraphQL 类型?

例如:如下所示,创建用户的 Mutation(自定义用户类型已在 GraphQL 架构中定义):

createUser(user: User): String

我认为我们只允许传递主要类型,所以不能传递对象。 另一种选择(不干净),是将对象序列化为字符串并将其作为字符串参数传递,并在解析器中对其进行反序列化。

【问题讨论】:

    标签: types middleware graphql typing apollo


    【解决方案1】:

    可以在突变中传递对象。例如,请参见 cheat sheet。但是你必须定义一个额外的输入用户GraphQL类型并且不能使用用户类型。

    在您的情况下,它可能如下所示:

    `
    type User {
      id: ID!
      username: String!
      // other query properties
    }
    
    input UserInput {
      username: Strin!
    }
    `

    突变和解析器可能如下所示:

    `
    mutation createUser(user: UserInput!): String
    `
    
    Mutation: {
      createUser(_, { user }) {
        // create in database
      }
    }

    【讨论】:

    • 谢谢,这正是我所缺少的。
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2021-04-02
    • 2013-05-14
    • 2018-02-22
    • 1970-01-01
    相关资源
    最近更新 更多