将深支撑传递到浅输入

时间:2019-07-11 15:09:28

标签: graphql

如果我有一个查询user,但它花费了uuid,但是我的变量很深user.uuid,我可以将uuid传递给user查询吗?

query User($user.uuid: string) {
  user (uuid:$user.uuid) {
    createdAt
  }
}

查询变量:

{
  "user":{
    "uuid": "abc"
  }
}

1 个答案:

答案 0 :(得分:0)

否,如果该变量是对象,则当前GraphQL规范不支持引用该变量的属性。您可以传入对象变量,但只能在需要输入对象的地方使用它们,例如,给定的模式如下:

type Mutation {
  createUser(input: UserInput!): User!
}

input UserInput {
  email: String!
}

我们可以做到

mutation ($input: UserInput!) {
  createUser(input: $input) {
    email
  }
}

但是,如果期望的输入是标量:

type Mutation {
  createUser(email: String!): User!
}

我们必须提供标量作为单独的变量:

mutation ($email: String!) {
  createUser(email: $email) {
    email
  }
}