GraphQL スキーマ
スキーマは、データの編成と構造化の方法を記述します。 GraphQL サーバーは、スキーマを使用してデータをグラフとして記述します。このスキーマは、バックエンド データ ストアから入力されるフィールドを持つ型の階層を定義します。 スキーマは、クライアントがデータ グラフに対してどのクエリを実行できるかも正確に指定します。
重要
GraphQL の Sitecore Content Hub™ の実装でミューテーションを使用することはできません。
使用可能なデータ型は、GraphQL スキーマからわかります。 確認する必要がある場合は、GraphQL で __schema field
をクエリすることができます。 この方法で、スキーマと型がわかります。
クエリのルート型では __schema field
が常に使用できます。
スキーマを表示するには、Preview API または Delivery API のいずれかの IDE で次のコマンドを実行します。
{
__schema {
types {
name
}
}
}
注
[スキーマ] タブからスキーマにアクセスすることもできます。このタブは、Delivery API と Preview API の両方の IDE で右側にあります。
型
GraphQL の型は、Content Hub のエンティティが GraphQL でどのようにマップされるかを示します。 次の表に、Content Hub と GraphQL の型の例を示します。
GraphQL の型 | Content Hub エンティティの定義 |
---|---|
M_Asset | M.Asset |
M_Brand | M.Brand |
M_Content | M.Content |
M_ContentType | M.ContentType |
M_PCM_Product | M.PCM.Product |
M_PCM_ProductCategory | M.PCM.ProductCategory |
ヒント Content Hub のエンティティ定義に対応する GraphQL の型を見つけるには、"
.
" を "_
" に置き換えます。
CMP コンテンツ タイプのエンティティ用に作成された仮想型と、リスト型もあります。
CMP コンテンツ タイプ | GraphQL の型 | GraphQL のリスト型 |
---|---|---|
ブログ | M_Content_Blog | M_Content_BlogList |
ソーシャル メディア | M_Content_SocialMediaMessage | M_Content_SocialMediaMessageList |
ホワイトペーパー | M_Content_WhitePaper | M_Content_WhitePaperList |
レシピ | M_Content_Recipe | M_Content_RecipeList |
ウェビナー | M_Content_Webinar | M_Content_WebinarList |
メール | M_Content_Email | M_Content_EmailList |
広告 | M_Content_Advertisement | M_Content_AdvertisementList |
スカラー型
スカラー型は、人気のあるプログラミング言語のプリミティブ型に似ています。 この型は常に具体的なデータに解決されます。
GraphQL のデフォルトのスカラー型は次のとおりです。
スカラー型 | 説明 |
---|---|
Int | 符号付き 32 ビット整数。 |
Float | 符号付き倍精度浮動小数点数値。 |
文字列 | UTF-8 文字シーケンス。 |
Boolean | true または false 値。 |
ID (string としてシリアル化)。 | オブジェクトのフェッチに使用される、またはキャッシュのキーとして使用される一意の識別子。 ID は文字列としてシリアル化されますが、人間が判読できる形式を意図したものではありません。 |
GraphQL には、次のカスタム スカラー型が含まれています。
スカラー型 | 説明 |
---|---|
MultiplierPath | 乗算パス型は、有効な GraphQL 乗算パス文字列を表します。 |
DateTime | 日時を 2021-01-19T17:33:00.000Z の形式で提供します。 |
Long | Long 変数は、数値を格納するための拡張サイズ変数です。 |
Decimal | Decimal 変数は、スケーリング係数と 10 進数が正か負かを示す値とともに、96 ビット (12 バイト) の符号なしの整数として格納されます。 |
オブジェクト型
GraphQL スキーマで定義する型のほとんどは、オブジェクト型です。 オブジェクト型にはフィールドのコレクションが含まれ、各フィールドはスカラー型または別のオブジェクト型のいずれかになります。
REST ベースの API を使用すると、さまざまなエンティティがさまざまなエンドポイントから返される可能性があります (たとえば、http://hostname/api/m.asset
や http://hostname/api/m.content
など)。 GraphQL の柔軟性により、クライアントは 1 回のリクエストで両方のリソースをクエリできます。
DOCS
IDE docs は、スキーマと型の使用を定義します。
Can we improve this article ? Provide feedback