GraphQL 有其自己的語言來編寫 GraphQL Schema:GraphQL Schema 定義語言 (SDL)。SDL 簡單直觀,同時又非常強大且富有表現力。

什麼是 GraphQL Schema 定義?
GraphQL Schema 定義是指定 GraphQL schema 最簡潔的方式。其語法定義明確,並且是 官方 GraphQL 規範的一部分。Schema 定義有時也被稱為 IDL(介面定義語言)或 SDL(Schema 定義語言)。
部落格應用程式的 GraphQL schema 可以這樣指定
schema 定義的主要組成部分是類型 (types) 及其欄位 (fields)。其他資訊可以作為自訂指令 (directives) 提供,例如為 likes
欄位指定的 @default
值。
類型
類型具有名稱,並且可以實作一個或多個介面 (interfaces)
欄位
欄位具有名稱和類型
GraphQL 規範定義了一些內建的純量值 (scalar values),但更多值可以通過具體實作來定義。內建的純量類型包括
- Int
- Float
- String
- Boolean
- ID
除了純量類型之外,欄位還可以使用 schema 定義中定義的任何其他類型。
不可為空的欄位用驚嘆號表示
列表用方括號表示
列舉
列舉 (enum
) 是一種純量值,它具有一組指定的可能值
介面
在 GraphQL 中,介面 (interface
) 是一個欄位列表。GraphQL 類型必須具有與其所實作的所有介面相同的欄位,並且所有介面欄位必須具有相同的類型。
Schema 指令
指令 (directive) 允許您將任意資訊附加到任何其他 schema 定義元素。指令始終放在它們描述的元素之後
指令沒有內在含義。每個 GraphQL 實作都可以定義自己的自訂指令,以添加新功能。
GraphQL 規範指定了內建的 skip 和 include 指令,可用於在查詢中包含或排除特定欄位,但這些指令不在 schema 語言中使用。
不要錯過下一篇文章!
訂閱 Prisma 電子報