为什么GraphQL选择使用'输入'类型?

时间:2017-08-28 03:38:03

标签: graphql

以下是我对GraphQL的Client和ClientInput的定义

type Client {
  _id: String
  short_name: String
  full_name: String
  address: String
  contact_name: String
  contact_email: String
  contract_currency: String
  location: String
}

input ClientInput {
  short_name: String
  full_name: String
  address: String
  contact_name: String
  contact_email: String
  contract_currency: String
  location: String  
}

它们或多或少相同。他们为什么选择发明输入类型?

以下是我在官方文件中发现的内容:

  

输入是graphql中的另一种特殊类型,因为在graphql中你不能   混合模式中的输入和输出类型。

我还不完全明白为什么。为什么在graphql中,我不能混合输入和输出类型?

1 个答案:

答案 0 :(得分:0)

因为当您向DB插入数据时,查询数据时不一定拥有相同的数据。例如,您想强制人们使用id查询“user”,但是在创建用户时没有id,因此您的输入将是

input UserInput {
   name: String
}

,您的类型将是

type User {
   id: ID!
   name: String
}