クエリおよび変異の実行

統合スキーマは 1 つの GraphQL エンドポイントに解決されます。統合スキーマに対するクエリまたは変異を実行するには、まずアクセス権を要求し (該当する場合)、クエリエディタで GraphQL クエリを作成して実行します。

クエリを実行するためのアクセス権を要求する

クエリまたは変異を実行するためには、アクセス権を要求する必要があります。

外部クライアントプロバイダを使用している場合は、​「外部クライアントプロバイダを使用する環境へのアクセス権の要求」​を参照してください。

  1. [Run Operation (操作を実行)]​ をクリックします。

  2. [Request access to run queries (クエリを実行するためのアクセス権の要求)]​ ダイアログで、クエリを実行するためのアクセス方法を選択します。

    既存のクライアントアプリケーション、またはクライアントの ID とシークレットのペアを使用する場合は、Exchange で確認できます。新しいタブで Exchange を開き、​[My applications (マイアプリケーション)]​ に移動し、リストからアプリケーションを選択して関連情報を確認します。

    次のいずれかのオプションを選択します。

    • Use one of my existing applications (既存のアプリケーションの 1 つを使用する)​: リストから既存のクライアントアプリケーションを選択して、[Request Access (アクセス権を要求)] をクリックします。

    • Create a new application and use it immediately (新しいアプリケーションを作成してすぐに使用する)​: [Next (次へ)]​ をクリックし、アプリケーション名と、説明やアプリケーション URL (省略可能) を指定して、​[Create and Request Access (作成してアクセス権を要求)]​ をクリックします。

    • I already have credentials…​ (ログイン情報を取得済み…​)​: [Next (次へ)]​ をクリックし、クライアント ID とシークレットのペアを指定してから、​[Authenticate & Request Access (認証してアクセス権を要求)]​ をクリックします。

  3. クエリエディタでアクセス方法を変更するには、アクションメニュー (​…​​) から ​[Switch Current Credentials (現在のログイン情報を切り替え)]​ を選択します。

クエリを実行する

クエリエディタは、クエリの作成、実行、トラブルシューティングに使用できます。

  1. 統合スキーマの API にパススルー認証が必要なものがある場合は、​[Add HTTP Headers (HTTP ヘッダーを追加)]​ をクリックして、次の手順を実行します。

    1. ヘッダー名を選択します。

    2. ヘッダー値を入力します。

    3. 他の API のヘッダー名と値のペアも指定する場合は、​[+Add Header (+ヘッダーを追加)]​ をクリックします。

    4. [Save (保存)]​ をクリックします。

    5. HTTP ヘッダーを編集する場合は、​[Edit HTTP Headers (HTTP ヘッダーを編集)]​ をクリックします。

  2. クエリエディタで、インラインのオートコンプリート機能を使用してクエリを入力するか、​Option/Alt + Shift + Space​ キーでオートコンプリートメニューを開いて入力します。

    インラインのオートコンプリートを使用してクエリを作成
  3. 必要に応じて、​[Query Variables (クエリ変数)]​ ペインで、使用するクエリ変数を追加します。

    クエリエディタにクエリ変数を挿入
  4. [Run (実行)]​ をクリックします。

    クエリエディタに表示されたクエリ結果
  5. クエリトレースを使用して結果を表示する場合は、アクションメニュー (​…​​) から ​[Trace Query (クエリをトレース)]​ を選択して、​[Run (実行)]​ をクリックします。

    クエリのトレースビューとクエリ結果

    DataGraph のクエリトレースの結果には、次の情報が示されます。

    • DataGraph でクエリの解析と検証に要した時間

    • クエリ全体の合計応答時間

    • クエリでの各ソース API への要求時間

  6. クエリに関連するログを表示するには、アクションメニュー (​…​​) から ​[View Response Logs (応答ログを表示)]​ を選択します。

    クエリの応答ログページ

    DataGraph のログレベルには、DEBUG、INFO、WARN、ERROR があります。

  7. [View History (履歴を表示)]​ をクリックすると、後からこの同じクエリ (または別のクエリ) にアクセスできます。

  8. このクエリをアプリケーションで使用するには、​[Copy endpoint (エンドポイントをコピー)]​ をクリックして、クエリと自動的に生成された GraphQL エンドポイントをコピーします。クエリを curl スニペットとしてコピーすることもできます。

変異を実行する

クエリエディタを使用して、変異を作成して実行します。必要に応じて、クエリエディタで変異のトラブルシューティングを行うこともできます

  1. 統合スキーマの API にパススルー認証が必要なものがある場合は、​[Add HTTP Headers (HTTP ヘッダーを追加)]​ をクリックして、次の手順を実行します。

    1. ヘッダー名を選択します。

    2. ヘッダー値を入力します。

    3. 他の API のヘッダー名と値のペアも指定する場合は、​[+Add Header (+ヘッダーを追加)]​ をクリックします。

    4. [Save (保存)]​ をクリックします。

    5. HTTP ヘッダーを編集する場合は、​[Edit HTTP Headers (HTTP ヘッダーを編集)]​ をクリックします。

  2. クエリエディタで、インラインのオートコンプリート機能を使用して変異を入力するか、​Option/Alt + Shift + Space​ キーでオートコンプリートメニューを開いて入力します。

    インラインのオートコンプリートを使用して変異を作成
  3. 必要に応じて、​[Query Variables (クエリ変数)]​ ペインで、使用する変数を追加します。

  4. [Run (実行)]​ をクリックします。

    クエリエディタに表示された変異結果
  5. クエリトレースを使用して結果を表示する場合は、アクションメニュー (​…​​) から ​[Trace Query (クエリをトレース)]​ を選択して、​[Run (実行)]​ をクリックします。

  6. クエリに関連するログを表示するには、アクションメニュー (​…​​) から ​[View Response Logs (応答ログを表示)]​ を選択します。

  7. [View History (履歴を表示)]​ をクリックすると、後からこの同じ変異 (または別の変異) にアクセスできます。

  8. この変異をアプリケーションで使用するには、​[Copy endpoint (エンドポイントをコピー)]​ をクリックして、クエリと自動的に生成された GraphQL エンドポイントをコピーします。クエリを curl スニペットとしてコピーすることもできます。

クエリエディタのショートカット

次の表は、クエリエディタで使用可能なショートカットを示しています。

関数 ショートカット

クエリの整形

Shift ​Ctrl​ p

操作を実行

Ctrl + Enter

オートコンプリート

Ctrl + space

行のコメントアウト

Cmd + /

現在のスコープの終点または始点にジャンプ

Cmd + m

現在の単語の強調表示

Cmd + d

正規表現検索

Cmd + f

検索と置換

Cmd + h

次の行を現在の行に移動

Cmd + j

行のカーソルより後の部分を削除

Cmd + kk

現在の行の強調表示

Cmd + l

現在の行のアウトデント

Cmd + [

現在の行のインデント

Cmd + ]

外部クライアントプロバイダを使用する環境へのアクセス権の要求

API Manager を使用すると、環境ごとに異なるクライアントプロバイダを設定できます。データグラフが実行される環境によっては、クライアントアプリケーションで、デフォルトの Anypoint Platform ネイティブクライアントプロバイダまたはサポートされている外部クライアントプロバイダのいずれかを使用して認証する必要のある場合があります。詳細は、​「クライアント管理について」​を参照してください。

環境に特定のクライアントプロバイダを設定しない場合は、Anypoint Platform のデフォルトのネイティブクライアントプロバイダが使用されます。

各自の環境で外部クライアントプロバイダを使用している場合は、​[Request Access (アクセス権の要求)]​ ポップアップに、外部クライアントプロバイダの実装で定義された必須項目と省略可能な項目が表示されます。

たとえば、​/api-federation/xapi/organizations/{organizationID}/environments/{environmentID}/type/federation/api/clientProvider/​ エンドポイントに照会すると、その環境で設定されている許可種別が返されます。

{
    "id": "aaaaaaaa-1a1a-1a1a-1a1a-aaaa1111aaa1",
    "name": "OpenAM",
    "typeName": "openam",
    "grantTypes": [
        {
            "name": "password",
            "label": "Resource Owner Grant",
            "depends": [],
            "exclude": [],
            "required": true (1)
        },
        {
            "name": "implicit",
            "label": "Implicit Grant",
            "depends": [],
            "exclude": [],
            "required": true (1)
        },
        {
            "name": "client_credentials",
            "label": "Client Credentials Grant",
            "depends": [],
            "exclude": [
                "authorization_code" (2)
            ],
            "required": false
        },
        {
            "name": "authorization_code",
            "label": "Authorization Code Grant",
            "depends": [],
            "exclude": [
                "client_credentials" (2)
            ],
            "required": false
        }
    ]
}

これらの許可種別のプロパティは、クライアントのアクセス権を設定するときの UI に反映されます。

外部クライアントプロバイダを使用する場合のアクセス権の要求
1 UI で ​[Resource Owner Grant (リソースオーナー許可)]​ と ​[Implicit Grant (暗黙的許可)]​ の両方が必須とマークされています。
2 UI の ​[Client Credentials Grant (クライアントログイン情報許可)]​ と ​[Authorization Code Grant (認証コード許可)]​ は相互に排他的です。