GraphQL API のインポート

適用対象: すべての API Management レベル

API Management では、2 つのモデルのいずれかで GraphQL API を追加できます。つまり、既存の GraphQL エンドポイントへのパススルーを使用するか、GraphQL スキーマをインポートし、カスタム フィールド リゾルバーで合成 GraphQL API を作成します。 詳細については、GraphQL の概要に関するページを参照してください。

この記事では、次のことを行います。

  • API Management インスタンスにパススルー GraphQL API を追加します。
  • GraphQL API をテストします。

GraphQL スキーマをインポートし、REST または SOAP API エンドポイントを使用してフィールド リゾルバーを設定する場合は、「GraphQL スキーマをインポートし、フィールド リゾルバーを設定する」を参照してください。

前提条件

GraphQL API を追加する

  1. Azure portal で、API Management インスタンスに移動します。

  2. 左側のメニューで、 [API]>[+ API の追加] を選択します。

  3. [Define a new API](新しい API の定義) で、GraphQL アイコンを選びます。

    API の一覧から GraphQL アイコンを選択しているスクリーンショット。

  4. ダイアログ ボックスで [完全] を選択し、必要なフォーム フィールドを入力します。

    GraphQL API を作成するためのフィールドのスクリーンショット。

    フィールド Description
    [表示名] GraphQL API を表示するときに使用する名前。
    名前 GraphQL API の未加工の名前。 表示名を入力すると自動的に設定されます。
    GraphQL の種類 [Pass-through GraphQL] (パススルー GraphQL) を選択して、既存の GraphQL API エンドポイントからインポートします。
    GraphQL API エンドポイント ベース URL と GraphQL API のエンドポイント名。
    (例: https://example.com/your-GraphQL-name)。 https://swapi-graphql.azure-api.net/graphql などの一般的な "swapi" GraphQL エンドポイントをデモとして使用することもできます。
    スキーマのアップロード 必要に応じて、スキーマ ファイルを参照してアップロードし、GraphQL エンドポイントから取得したスキーマを置き換えます (使用可能な場合)。
    説明 API の説明を追加します。
    URL スキーム GraphQL エンドポイントに基づいて選択します。 GraphQL API にサブスクリプションの種類が含まれている場合は、WebSocket スキーム (WS または WSS) を含むオプションのいずれかを選択します。 既定の選択は HTTP(S) です。
    API URL サフィックス この API Management インスタンスでこの特定の API を識別するための URL サフィックスを追加します。 この API Management インスタンス内で一意である必要があります。
    ベース URL API ベース URL を表示する編集できないフィールド
    タグ GraphQL API を新規または既存のタグに関連付けます。
    製品 GraphQL API を製品に関連付けて発行します。
    この API をバージョン管理しますか? GraphQL API にバージョン管理スキームを適用する場合に選択します。
  5. [作成] を選択します

  6. API が作成されたら、[デザイン] タブでスキーマを参照するか変更します。ポータルで GraphQL スキーマを探索するスクリーンショット。

GraphQL API をテストする

  1. API Management インスタンスに移動します。

  2. サイド ナビゲーション メニューの [API] セクションで、 [API] を選択します。

  3. [すべての API] の下で、使用する GraphQL API を選択します。

  4. [テスト] タブを選択して、テスト コンソールにアクセスします。

  5. [ヘッダー] で、次のようにします。

    1. [名前] ドロップダウン メニューからヘッダーを選びます。
    2. [値] フィールドに値を入力します。
    3. ヘッダーをさらに追加するには、 [+ ヘッダーの追加] を選びます。
    4. ヘッダーを削除するには、ごみ箱アイコンを使用します。
  6. GraphQL API に製品を追加した場合は、 [Apply product scope](製品スコープの適用) で製品スコープを適用します。

  7. [クエリ エディター] で、以下のいずれかを行います。

    1. サイド メニューの一覧から、少なくとも 1 つのフィールドまたはサブフィールドを選択します。 選択したフィールドとサブフィールドがクエリ エディターに表示されます。

    2. クエリ エディターで入力を開始して、クエリを作成します。

      クエリ エディターにフィールドを追加するスクリーンショット。

  8. [クエリ変数] で、{2}同じクエリまたは変更を再利用し、異なる値を渡す変数を追加します。

  9. [Send] を選択します。

  10. [応答] を表示します。

    テスト クエリ応答の表示のスクリーンショット。

  11. 前の手順を繰り返して、さまざまなペイロードをテストします。

  12. テストが完了したら、テスト コンソールを終了します。

サブスクリプションのテスト

GraphQL API でサブスクリプションがサポートされている場合は、テスト コンソールでテストできます。

  1. API に適した WebSocket URL スキーム (WS または WSS) が API で許可されていることを確認します。 この設定は、[設定] タブで有効にすることができます。

  2. クエリ エディターでサブスクリプション クエリを設定し、[接続] を選択してバックエンド サービスへの WebSocket 接続を確立します。

    クエリ エディターのサブスクリプション クエリのスクリーンショット。

  3. [サブスクリプション] ペインで接続の詳細を確認します。

    ポータルでの Websocket 接続のスクリーンショット。

  4. サブスクライブされたイベントが [サブスクリプション] ウィンドウに表示されます。 WebSocket 接続は、切断するか、新しい WebSocket サブスクリプションに接続するまで維持されます。

    ポータルでの GraphQL サブスクリプション イベントのスクリーンショット。

GraphQL API をセキュリティで保護する

GraphQL 固有の攻撃から保護するには、既存の認証および承認ポリシーGraphQL 検証ポリシーの両方を適用して、GraphQL API をセキュリティで保護します。

次のステップ