2017年5月1日

GraphQL SDL(スキーマ定義言語)

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

GraphQL 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ニュースレターに登録

© 2025 prisma.dokyumento.jp. All rights reserved.