---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GraphQL API フレームワークを使用したレコードデータのクエリ

# GraphQL API フレームワークを使用したレコードデータのクエリ {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：6分

コンポーネントまたはサードパーティシステムからレコードデータをクエリするためのカスタム GraphQL API を作成します。

たとえば、SLA に関連付けられたケースを表示するコンポーネントを作成できます。この ネクストエクスペリエンス UI フレームワーク を使用して必要なコンポーネントを開発し、ケーステーブルのデータを定義する GraphQL スキーマを作成することで、プラットフォームからケースデータにアクセスできます。

コンポーネントの開発の詳細については、「 [ワークスペースのコンポーネントの開発](https://www.servicenow.com/docs/access?context=custom-components&version=australia&pubname=australia-application-development&ft:locale=en-US)」を参照してください。

## GraphQL のメリット {#scripted-graph-ql__section_ztd_cf1_dlb}

GraphQL は、クライアント側の開発用に最適化された Web クエリ言語です。スクリプト化された GraphQL を使用すると、次のことができます。  
* イントロスペクションを通じてクエリに使用できるフィールドとオブジェクトを検出します。
* コンポーネントから必要な正確なデータをクエリします。
* REST 要求に対して複数のエンドポイントを使用するのではなく、単一の API から考えられる複数のクエリを管理します。
* スキーマを公開して、サードパーティシステムと統合します。
* コンポーネントから GraphQL クエリを生成し、応答を処理します。
{#scripted-graph-ql__ul_pp2_myf_dlb}

## 使用前の注意事項 {#scripted-graph-ql__section_yrj_nh1_dlb}

カスタム GraphQL API の作成を開始する前に、次のことを確認してください。  
* スキーマを作成するための GraphQL ナレッジ。
* API 動作を定義するための JavaScript の知識。
* Web コンポーネントの概念に関する一般的な知識。
* レコードデータを消費するカスタム ワークスペース コンポーネント。
* スキーマで公開する ServiceNow データモデルについて理解する。
* GlideRecord ナレッジを使用して、フィールドをリゾルバースクリプトのレコードデータにマッピングします。
{#scripted-graph-ql__ul_zj1_qh1_dlb}

## GraphQL の概要 {#scripted-graph-ql__section_wqr_bf1_dlb}

スクリプト化された GraphQL API の作成には、次の部分が含まれます。  

GraphQL スキーマ定義言語 (SDL)
:   GraphQL クエリで使用できるフィールドの構造とデータ型を定義します。GraphQL スクリプトスキーマ \[sys_graphql_schema\] テーブルの スキーマ スクリプトフィールドを使用して、SDL を定義できます。SDL は、クエリ操作とミューテーション操作のみをサポートしています。

リゾルバー
:   各フィールドから返されるデータを定義します。\[GraphQL スクリプトスキーマ\] フォームの \[GraphQL スクリプトリゾルバー\] 関連リストで、各フィールドのリゾルバーを定義できます。

タイプリゾルバー
:   インターフェイスとユニオンを具体的な GraphQL タイプに解決します。たとえば、 `インシデント` タイプと `問題` タイプのユニオンを定義することができます。typeresolver スクリプトを使用して、いつどのものを返すかを定義します。\[GraphQL スクリプトスキーマ\] フォームの \[GraphQL スクリプト型リゾルバー\] 関連リストでタイプリゾルバーを定義できます。

リゾルバーマッピング
:   リゾルバーをスキーマ内のフィールドにマッピングします。リゾルバーマッピングは、\[GraphQL スクリプトスキーマ\] フォームの \[GraphQL スクリプト化されたリゾルバーマッピング\] 関連リストで定義できます。

GraphQL クエリ言語の詳細については、 [GraphQL の Web サイト](https://graphql.org/)を参照してください。

GraphQL API へのクエリをテストするには、統合された GraphQL テストツールである GraphQL エクスプローラーを使用できます。詳細については、「[GraphQL エクスプローラーで GraphQL API をテストする](https://servicenow-prod.fluidtopics.net/Qtgq_FTyOlUBKCStL8aoow "統合された GraphQL テストツールを使用して、GraphQL API のクエリをテストします。")」を参照してください。

## 制限事項 {#scripted-graph-ql__section_ymn_b2j_dlb}

次の GraphQL 機能はサポートされていません。  
* サブスクリプション操作
* カスタムスカラータイプ
{#scripted-graph-ql__ul_fns_g3v_flb}

## イントロスペクション {#scripted-graph-ql__section_vxz_rw5_flb}

デフォルトでは、カスタムスキーマへのイントロスペクションクエリは有効になっていません。イントロスペクションをオンにするには、「 [GraphQL スキーマのイントロスペクションクエリを有効にする](https://servicenow-prod.fluidtopics.net/a0Cb6a_FDJiZcZhJ84_GRQ "イントロスペクションを有効にして、インスタンスのスキーマでサポートされているクエリとミューテーションを検出します。")」を参照してください。

## 名前空間 {#scripted-graph-ql__section_frl_yyh_dlb}

GraphQL API には、次の 2 つの異なる名前空間があります。  

アプリケーション名前空間
:   カスタムアプリケーションの名前空間。アプリケーション名前空間の詳細については、「 [アプリケーションスコープ](https://www.servicenow.com/docs/access?context=c_ApplicationScope&version=australia&pubname=australia-application-development&ft:locale=en-US)」を参照してください。

スキーマ名前空間
:   すべてのクエリが一意であることを確認するためのスキーマの名前空間。1 つのアプリケーションに複数のスキーマ名前空間を含めることができます。

データをクエリするときは、クエリに両方の名前空間を含める必要があります。たとえば、次のクエリは、次の名前空間を持つデータを検索しています。  
* アプリケーション名前空間: `x_graph_scope`
* スキーマ名前空間: `惑星`
{#scripted-graph-ql__ul_ihg_pzh_dlb}  

    query {
      x_graph_scope {
        planet {
          findAll {
            name
            mass
            distance
          }
        }
      }
    }

## ディレクティブとグローバル関数 {#scripted-graph-ql__section_zdw_rnc_glb}

`@source` スキーマディレクティブ

:   GraphQL フィールドを親オブジェクトのプロパティ値にマッピングします。フィールドに個別のリゾルバースクリプトがある場合、システムは親オブジェクトの代わりにそのフィールドが解決されるレコードを使用します。

    スキーマスクリプトで `@source` ディレクティブを使用します。

`@defer` クエリディレクティブ
:   GraphQL フラグメントの処理をクエリの後半まで保留します。このクエリディレクティブを使用して、フラグメント内の応答が遅いフィールドのデータの返却を遅らせます。保留されたフラグメントのフィールド結果をマルチパート応答としてストリーミングします。  
    注:  
    `@defer` ディレクティブを使用するには、GraphQL クライアントがマルチパート/混合 HTTP ヘッダーを受け入れる必要があります。たとえば、HTTP ヘッダーを `Accept: multipart/mixed; boundary="-"` に設定します。

    `@defer` ディレクティブを使用して、ユーザーのインタラクション時間を短縮します。 このクエリディレクティブを無差別に適用すると、パフォーマンスが低下する可能性があるため、避けてください。パフォーマンステストを実施して、パフォーマンスを向上させるために保留できるフィールドを決定します。

リゾルバー関数

:   これらの関数は、グローバル env オブジェクトで使用できます。

    * getArguments():前のフィールドの引数を返します。
    * getSource():親オブジェクトを返します。
    {#scripted-graph-ql__ul_t2l_vrx_glb}

    リゾルバースクリプトで使用します。

Typeresolver 関数

:   これらの関数は、グローバル env オブジェクトで使用できます。

    * getArguments():前のフィールドの引数を返します。
    * getObject(): 親オブジェクトを返します。
    * getTypeName():インターフェイスまたは Union タイプの名前を返します。
    {#scripted-graph-ql__ul_e1w_vrx_glb}

    タイプリゾルバースクリプトで使用します。

## デモアプリケーション {#scripted-graph-ql__section_ubj_21v_flb}

ミューテーションとクエリを含むデモ GraphQL PTO カレンダースキーマを表示するには、GraphQL フレームワークデモアプリケーションプラグイン (com.glide.graphql.framework.demo) を有効にします。
* **[GraphQL スキーマの作成](https://servicenow-prod.fluidtopics.net/EiDJzRjSvstRApjSG9jJ8g#build-graphql-scripted-schema)**   
  GraphQL スキーマを作成して、GraphQL クエリでデータを使用できるようにします。
* **[GraphQL スキーマのイントロスペクションクエリを有効にする](https://servicenow-prod.fluidtopics.net/a0Cb6a_FDJiZcZhJ84_GRQ)**   
  イントロスペクションを有効にして、インスタンスのスキーマでサポートされているクエリとミューテーションを検出します。
* **[GraphQL エクスプローラーで GraphQL API をテストする](https://servicenow-prod.fluidtopics.net/Qtgq_FTyOlUBKCStL8aoow)**   
  統合された GraphQL テストツールを使用して、GraphQL API のクエリをテストします。
* **[コンポーネントからの GraphQL スキーマのクエリ](https://servicenow-prod.fluidtopics.net/RAI2WsmRgHDgmcdmfpowvA)**   
  スクリプト化された GraphQL スキーマを照会して、コンポーネント内のレコードデータにアクセスします。
* **[GraphQL システムのプロパティ](https://servicenow-prod.fluidtopics.net/qi1YRL~OBCI_ftb1wPwDwA)**   
  GraphQL API フレームワークの動作を構成します。たとえば、スキーマに対するイントロスペクションクエリを許可するかどうかを構成できます。

