GraphQLスキーマを記述するための独自の言語、GraphQL Schema Definition Language(SDL)があります。SDLは、非常に強力で表現力豊かでありながら、シンプルで直感的に使用できます。

GraphQLスキーマ定義とは?
GraphQLスキーマ定義は、GraphQLスキーマを記述する最も簡潔な方法です。その構文は明確に定義されており、公式のGraphQL仕様の一部です。スキーマ定義は、IDL(Interface Definition Language)またはSDL(Schema Definition Language)と呼ばれることもあります。
ブログアプリのGraphQLスキーマは、次のように指定できます
スキーマ定義の主要なコンポーネントは、型(types)とそれらのフィールド(fields)です。likes
フィールドに指定された@default
値のような、カスタムのディレクティブ(directives)として追加情報を提供できます。
型
型には名前があり、1つまたは複数のインターフェース(interfaces)を実装できます。
フィールド
フィールドには名前と型があります。
GraphQL仕様ではいくつかの組み込みのスカラー値が定義されていますが、具体的な実装によってさらに多くの値を定義できます。組み込みのスカラー型は次のとおりです。
- Int
- Float
- String
- Boolean
- ID
スカラー型に加えて、フィールドはスキーマ定義で定義されている他の型も使用できます。
Non-nullableなフィールドは感嘆符で示されます。
リストは角括弧で示されます。
Enum
enum
は、可能な値の指定されたセットを持つスカラー値です。
インターフェース
GraphQLでは、interface
はフィールドのリストです。GraphQLの型は、実装するすべてのインターフェースと同じフィールドを持ち、すべてのインターフェースフィールドは同じ型でなければなりません。
スキーマディレクティブ
ディレクティブを使用すると、任意の情報を他のスキーマ定義要素に付加できます。ディレクティブは常に、それが記述する要素の後ろに配置されます。
ディレクティブには本来の意味はありません。各GraphQL実装は、新しい機能を追加する独自のカスタムディレクティブを定義できます。
GraphQLは、クエリで特定のフィールドを含めたり除外したりするために使用できる組み込みのskipおよびincludeディレクティブを規定していますが、これらはスキーマ言語では使用されません。
次回の投稿をお見逃しなく!
Prismaニュースレターに登録