クエリおよび変異の実行

統合スキーマは 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 (認証コード許可)]​ は相互に排他的です。