logo

GraphQL スキーマ

スキーマは、データの編成と構造化の方法を記述します。 GraphQL サーバーは、スキーマを使用してデータをグラフとして記述します。このスキーマは、バックエンド データ ストアから入力されるフィールドを持つ型の階層を定義します。 スキーマは、クライアントがデータ グラフに対してどのクエリを実行できるかも正確に指定します。

重要

GraphQL の Sitecore Content Hub の実装でミューテーションを使用することはできません。

使用可能なデータ型は、GraphQL スキーマからわかります。 確認する必要がある場合は、GraphQL で __schema field をクエリすることができます。 この方法で、スキーマとがわかります。

クエリのルート型では __schema field が常に使用できます。

スキーマを表示するには、Preview API または Delivery API のいずれかの IDE で次のコマンドを実行します。

{
  __schema {
    types {
      name
    }
  }
}

[スキーマ] タブからスキーマにアクセスすることもできます。このタブは、Delivery APIPreview API の両方の IDE で右側にあります。

GraphQL の型は、Content Hub のエンティティが GraphQL でどのようにマップされるかを示します。 次の表に、Content Hub と GraphQL の型の例を示します。

GraphQL の型Content Hub エンティティの定義
M_AssetM.Asset
M_BrandM.Brand
M_ContentM.Content
M_ContentTypeM.ContentType
M_PCM_ProductM.PCM.Product
M_PCM_ProductCategoryM.PCM.ProductCategory

ヒント Content Hub のエンティティ定義に対応する GraphQL の型を見つけるには、"." を "_" に置き換えます。

CMP コンテンツ タイプのエンティティ用に作成された仮想型と、リスト型もあります。

CMP コンテンツ タイプGraphQL の型GraphQL のリスト型
ブログM_Content_BlogM_Content_BlogList
ソーシャル メディアM_Content_SocialMediaMessageM_Content_SocialMediaMessageList
ホワイトペーパーM_Content_WhitePaperM_Content_WhitePaperList
レシピM_Content_RecipeM_Content_RecipeList
ウェビナーM_Content_WebinarM_Content_WebinarList
メールM_Content_EmailM_Content_EmailList
広告M_Content_AdvertisementM_Content_AdvertisementList

スカラー型

スカラー型は、人気のあるプログラミング言語のプリミティブ型に似ています。 この型は常に具体的なデータに解決されます。

GraphQL のデフォルトのスカラー型は次のとおりです。

スカラー型説明
Int符号付き 32 ビット整数。
Float符号付き倍精度浮動小数点数値。
文字列UTF-8 文字シーケンス。
Booleantrue または false 値。
ID (string としてシリアル化)。オブジェクトのフェッチに使用される、またはキャッシュのキーとして使用される一意の識別子。 ID は文字列としてシリアル化されますが、人間が判読できる形式を意図したものではありません。

GraphQL には、次のカスタム スカラー型が含まれています。

スカラー型説明
MultiplierPath乗算パス型は、有効な GraphQL 乗算パス文字列を表します。
DateTime日時を 2021-01-19T17:33:00.000Z の形式で提供します。
LongLong 変数は、数値を格納するための拡張サイズ変数です。
DecimalDecimal 変数は、スケーリング係数と 10 進数が正か負かを示す値とともに、96 ビット (12 バイト) の符号なしの整数として格納されます。

オブジェクト型

GraphQL スキーマで定義する型のほとんどは、オブジェクト型です。 オブジェクト型にはフィールドのコレクションが含まれ、各フィールドはスカラー型または別のオブジェクト型のいずれかになります。

REST ベースの API を使用すると、さまざまなエンティティがさまざまなエンドポイントから返される可能性があります (たとえば、http://hostname/api/m.assethttp://hostname/api/m.content など)。 GraphQL の柔軟性により、クライアントは 1 回のリクエストで両方のリソースをクエリできます。

DOCS

IDE docs は、スキーマと型の使用を定義します。

Can we improve this article ? Provide feedback