依存関係の概要

このページは ApigeeApigee ハイブリッドに適用されます。

API Hub の依存関係は、API オペレーション間の関係を表示して管理するのに役立ちます。API の依存関係を検出および追跡することで、API エコシステムをより効率的に管理できます。たとえば、API の変更やサポート終了による潜在的な影響の把握、問題のトラブルシューティング、コストやコンプライアンス規制の遵守状況の分析において、依存関係が役立ちます。API は、API Hub 内または API Hub の外部に保存できます。

依存関係とは

API Hub は、API オペレーション間の方向性の関係として依存関係をモデル化します。1 つの API オペレーションがサプライヤーで、もう 1 つがコンシューマーという関係です。たとえば、PetStore API が Location API のオペレーションを呼び出すとします。この場合、PetStore API は Location API によって提供されるオペレーションに依存します。API Hub において、PetStore をコンシューマー、Location をサプライヤーと呼びます。

図 1 は、API オペレーション間のサプライヤーとコンシューマーの関係を示しています。Payment API の /debit オペレーションは、Fraud Detection API の /detect オペレーションを使用します。この関係では、デビット オペレーションがコンシューマー、不正検知オペレーションがサプライヤーです。

同様に、/detect は UserProfile API と GeoLocation API によって提供されるオペレーションを使用します。この場合、/detect オペレーションがコンシューマーで、他の 2 つがサプライヤーです。

API Hub の依存関係 API Hub の依存関係

図 1: API 依存関係のマッピング

依存関係を作成する

API Hub で依存関係を作成する基本的な手順は次のとおりです。

  1. 追跡対象の依存関係を持つ可能性のある 2 つの API を見つけます。
  2. List Versions API を使用して、2 つの API のバージョンを一覧表示します。または、List Operations API を使用して結果をフィルタし、依存するオペレーションを見つけることもできます。
  3. どのオペレーションがサプライヤーで、どのオペレーションがコンシューマーかを判断します。前述のように、コンシューマー オペレーションはサプライヤーからオペレーションを呼び出します。
  4. Create Dependency API を使用して、サプライヤー オペレーションとコンシューマー オペレーション間の依存関係を作成します。

Create Dependency API の呼び出しの詳細と例については、Create Dependency API をご覧ください。

依存関係を見つける

API Hub で依存関係を見つけるには、List Dependency API が便利です。この API を使用すると、ソース オペレーション名、宛先オペレーション名、依存関係の状態などの主要な属性に基づいてフィルタできます。

依存関係を見つける基本的な手順は次のとおりです。

  1. List Dependency API を使用してすべての依存関係を一覧表示するか、API のフィルタ機能を使用して検索を絞り込むことができます。
  2. Get Dependency API を使用して、破損した依存関係をドリルダウンし、サプライヤー名などの詳細情報を確認します。

依存関係を一覧表示する API 呼び出しの例を次に示します。

curl "https://apihub.googleapis.com/v1/projects/myproject/locations/us-central1/dependencies"
    -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X GET -H "Content-Type: application/json"

破損した依存関係を特定する

破損した依存関係を特定する基本的な手順は次のとおりです。

  1. List Dependency API を使用してすべての依存関係を一覧表示するか、API のフィルタ機能を使用して検索を絞り込むことができます。
  2. 返された依存関係のうち、エラーフラグが設定されているものを特定します。
  3. Get Dependency API を使用して、破損した依存関係をドリルダウンし、サプライヤー名などの詳細情報を確認します。

    レスポンスの例を次に示します。エラー状態は、サプライヤー オペレーションが削除されたことを示します。

    {
      "name": "projects/common-dev-15/locations/us-central1/dependencies/user-to-pet",
      "consumer": {
          "displayName": "POST - /v2/user",
          "operationResourceName": "projects/common-dev-15/locations/us-central1/apis/payments-api/versions/2ff89c88-e8b6-48c4-a1c2-bdbb2a929bde/operations/createuser"
      },
      "supplier": {
          "displayName": "POST - /v2/pet",
          "operationResourceName": "projects/common-dev-15/locations/us-central1/apis/payments-api/versions/2ff89c88-e8b6-48c4-a1c2-bdbb2a929bde/operations/addpet"
      },
      "state": "VALIDATED",
      "description": "Dependency from user to pet API",
      "discoveryMode": "MANUAL",
      "createTime": "2024-04-17T19:33:31.215978712Z",
      "updateTime": "2024-04-17T19:33:31.737505297Z",
      {
        "error": "SUPPLIER_NOT_FOUND",
        "errorTime": 2024-05-18T20:23:42.465324Z
      }
    }

その他の依存関係オペレーション

依存関係を作成した後、API Hub API を使用して、依存関係の詳細を取得したり、API Hub のすべての依存関係のリストをフィルタして依存関係を見つけたりできるほか、依存関係の削除や、依存関係の説明の更新を行うことができます。すべての Dependency API について、API リファレンス依存関係の管理で詳しく説明しています。