GraphQL 欄位 - AWS AppSync GraphQL

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

GraphQL 欄位

欄位存在於 類型的範圍內,並保留從 GraphQL 服務請求的值。這些與其他程式設計語言的變數非常相似。例如,以下是Person物件類型:

type Person { name: String age: Int }

在此情況下,欄位分別是 name和 ,age並保留 StringInt值。如上所示的物件欄位可以用作查詢和突變欄位 (操作) 中的輸入。例如,請參閱Query下列內容:

type Query { people: [Person] }

people 欄位正在Person從資料來源請求 的所有執行個體。當您在 GraphQL 伺服器Person中新增或擷取 時,您可以預期資料會遵循您類型和欄位的格式,也就是說,結構描述中資料的結構會決定如何在回應中建構資料:

} "data": { "people": [ { "name": "John Smith", "age": "50" }, { "name": "Andrew Miller", "age": "60" }, . . . ] } }

欄位在建構資料中扮演重要角色。下面說明了幾個額外的屬性,可以套用至欄位,以進行更多自訂。

清單

清單會傳回指定類型的所有項目。您可以使用括號 將清單新增至欄位的類型[]

type Person { name: String age: Int } type Query { people: [Person] }

在 中Query,週圍括號Person表示您想要Person從資料來源傳回 的所有執行個體作為陣列。在回應中,每個 的 nameagePerson會以單一分隔清單的形式傳回:

} "data": { "people": [ { "name": "John Smith", # Data of Person 1 "age": "50" }, { "name": "Andrew Miller", # Data of Person 2 "age": "60" }, . # Data of Person N . . ] } }

您不限於特殊物件類型。您也可以在一般物件類型的欄位中使用清單。

非空值

非空值表示回應中不可為空的欄位。您可以使用 !符號將欄位設定為非空值:

type Person { name: String! age: Int } type Query { people: [Person] }

name 欄位不能明確為 null。如果您要查詢資料來源,並為此欄位提供 null 輸入,則會擲回錯誤。

您可以合併清單和非空值。比較這些查詢:

type Query { people: [Person!] # Use case 1 } . . . type Query { people: [Person]! # Use case 2 } . . . type Query { people: [Person!]! # Use case 3 }

在使用案例 1 中,清單不能包含 null 項目。在使用案例 2 中,清單本身無法設定為 null。在使用案例 3 中,清單及其項目不能為 null。不過,無論如何,您仍然可以傳回空白清單。