2017-08-28 50 views
1

這裏是我的客戶端和ClientInput定義GraphQL爲什麼GraphQL選擇使用「輸入」類型?

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中,我不能混合輸入和輸出類型?

回答

0

因爲將數據插入數據庫時​​,查詢數據時不一定具有相同的數據。例如你想迫使人們查詢「用戶」與ID,但在創建用戶,這樣你的投入將

input UserInput { 
    name: String 
} 

和你的類型將是

type User { 
    id: ID! 
    name: String 
} 
+0

如果沒有ID字段是相同的,例如查詢類型可以是「輸入User {name:String}」,與UserInput相同。爲什麼不能輸入和輸入類型是可以互換的? –

相關問題