依存関係を管理する

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

このドキュメントでは、登録済み API 間の依存関係を作成および管理する方法について説明します。依存関係は、API 間の関係を把握するのに役立ちます。依存関係の概要をご覧ください。

UI では、コンシューマー API とサプライヤー API の関係を一目で確認できます。コンシューマーはサプライヤーのオペレーションに依存しています。図 1 を参照してください。

API Hub の依存関係の UI。
図 1. API 依存関係の UI には、コンシューマー/サプライヤーのペアが表示されます。コンシューマー オペレーションはサプライヤー オペレーションに依存します。ドリルダウンすると、各依存関係の詳細を簡単に確認できます。コンシューマ オペレーションまたはサプライヤー オペレーションでテーブルをフィルタすることもできます。

依存関係を作成する

依存関係エンティティは、REST API を使用して作成できます。

Console

依存関係を作成するには:

  1. Google Cloud コンソールで、API Hub の [サプライ チェーン] ページに移動します。

    [API Hub] に移動
  2. [依存関係を作成] をクリックします。
  3. 依存関係の説明を追加します。
  4. [サプライヤー リソースの選択] で [オペレーション] を選択します。
  5. オペレーションを提供する API を選択します。
  6. オペレーションを提供する API の API バージョンを選択します。
  7. コンシューマーに提供するオペレーションを選択します。例: GET-/items
  8. [コンシューマー リソースの選択] で [オペレーション] を選択します。
  9. サプライヤーからのオペレーションを使用する API を選択します。
  10. オペレーションを使用する API のバージョンを選択します。
  11. 提供された API を使用するオペレーションを選択します。例: GET-/categories
  12. 必要に応じて、[設定] で定義したユーザー定義属性の値を指定します。
  13. [作成] をクリックします。新しい依存関係が [依存関係] リストページに表示されます(図 1)。

REST

依存関係の作成 API を使用して新しい依存関係を作成するには:

curl -X POST 'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/dependencies?dependency_id=DEPENDENCY_ID' \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H 'Content-Type: application/json' \
  --d '{
      "description": "DESCRIPTION",
      "supplier": {
          // Specify one of the following:
          "operation_resource_name": RESOURCE_NAME
          // OR
          "external_resource_name: RESOURCE_NAME"
      },
      "consumer": {
        // Specify one of the following:
        "operation_resource_name": RESOURCE_NAME
        // OR
        "external_resource_name: RESOURCE_NAME"
      }
  }'

次のように置き換えます。

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。このホスト プロジェクトは API Hub のプロビジョニング時に選択されたものです。
  • HUB_LOCATION: ホスト プロジェクトの場所。この場所は API Hub のプロビジョニング時に選択されたものです。
  • DEPENDENCY_ID:(省略可)依存関係の識別子。指定しない場合、システムで生成された ID が使用されます。名前は 4~500 文字の文字列にする必要があり、有効な文字は /[a-z][A-Z][0-9]-_. です。
  • DESCRIPTION:(省略可)依存関係の簡単な説明。
  • RESOURCE_NAME:(必須)指定する属性に応じて、API Hub または外部 API のオペレーションのリソース名。

    オペレーションのリソース名の形式は projects/PROJECT/locations/LOCATION/apis/API/versions/VERSION/operations/OPERATION です。

    オペレーションのリソースの例: "projects/myproject/locations/us-central1/apis/payments-api/versions/locationv1/operations/getlocation"

    外部 API リソース名の形式は projects/PROJECT/locations/LOCATION/externalApis/EXTERNAL_API です。

    外部 API リソースの例: "projects/myproject/locations/us-central1/externalApis/petstore"

レスポンスの例:

{
  "name": "projects/myproject/locations/us-central1/dependencies/user-to-pet",
  "consumer": {
      "displayName": "POST - /v2/user",
      "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/createuser"
  },
  "supplier": {
      "displayName": "POST - /v2/pet",
      "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/addpet"
  },
  "state": "VALIDATED",
  "description": "Dependency from user to pet API",
  "discoveryMode": "MANUAL",
  "createTime": "2024-04-17T19:33:31.664226Z",
  "updateTime": "2024-04-17T19:33:31.664226Z"
 }

REST の例

curl -X POST 'https://apihub.googleapis.com/v1/projects/myproject/locations/us-central1/dependencies?dependency_id=user-to-pet' \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H 'Content-Type: application/json' \
  --d '{
      "description": "Dependency from user to pet API",
      "consumer": {
          "operation_resource_name": "projects/myproject/locations/us-central1/apis/payments-api/versions/paymentv1/operations/createuser"
      },
      "supplier": {
          "operation_resource_name": "projects/myproject/locations/us-central1/apis/pet-api/versions/petstorev1/operations/addpet"
      }
  }'

依存関係を一覧参照する

このセクションでは、依存関係を一覧参照する方法について説明します。ある特定の API のすべてのバージョンに関連付けられたすべての依存関係を一覧参照できるほか、特定のバージョンに関連付けられたすべての依存関係を一覧参照することもできます。

Console

依存関係を一覧参照するには:

  1. Google Cloud コンソールで、API Hub の [サプライ チェーン] ページに移動します。既知の依存関係のリストが [サプライ チェーン] ページに表示されます。

    [API Hub] に移動
  2. [フィルタ] フィールドで、必要に応じてサプライヤー オペレーションまたはコンシューマー オペレーションを指定して、関連する依存関係を参照します。フィルタ機能を使用すると、指定したオペレーションにリンクされているすべての依存関係を見つけることができます。

REST

すべての依存関係を一覧参照するには、依存関係の一覧参照 API を使用します。

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

次のように置き換えます。

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。このホスト プロジェクトは API Hub のプロビジョニング時に選択されたものです。
  • HUB_LOCATION: ホスト プロジェクトの場所。この場所は API Hub のプロビジョニング時に選択されたものです。

出力例:

{
  "dependencies": [
      {
          "name": "projects/myproject/locations/us-central1/dependencies/user-to-pet",
          "consumer": {
              "displayName": "POST - /v2/user",
              "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/createuser"
          },
          "supplier": {
              "displayName": "POST - /v2/pet",
              "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/addpet"
          }
      }
  ]
 }

依存関係の詳細を取得する

このセクションでは、REST API を使用して API の依存関係の詳細を取得する方法について説明します。コンシューマーとサプライヤーの詳細を確認できます。また、依存関係の詳細(依存関係の破損を示すエラーなど)を確認することもできます。

Console

依存関係を取得するには:

  1. Google Cloud コンソールで、API Hub の [サプライ チェーン] ページに移動します。

    [API Hub] に移動
  2. [フィルタ] フィールドで、必要に応じてサプライヤー オペレーションまたはコンシューマー オペレーションを指定して、関連する依存関係を参照します。フィルタ機能を使用すると、指定したオペレーションにリンクされているすべての依存関係を見つけることができます。
  3. 目的の依存関係を見つけて、[詳細を表示] をクリックします。

REST

依存関係の詳細を表示するには、依存関係の詳細の取得 API を使用します。

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

次のように置き換えます。

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。このホスト プロジェクトは API Hub のプロビジョニング時に選択されたものです。
  • HUB_LOCATION: ホスト プロジェクトの場所。この場所は API Hub のプロビジョニング時に選択されたものです。
  • DEPENDENCY_ID: 依存関係の一意の ID。

レスポンスの例:

{
  "name": "projects/myproject/locations/us-central1/dependencies/user-to-pet",
  "consumer": {
      "displayName": "POST - /v2/user",
      "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/operations/createuser"
  },
  "supplier": {
      "displayName": "POST - /v2/pet",
      "operationResourceName": "projects/myproject/locations/us-central1/apis/payments-api/versions/version1/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"
}

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

{
  "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 の依存関係を削除する

このセクションでは、API の依存関係を削除する方法について説明します。

Console

依存関係を削除するには、次の手順を行います。

  1. Google Cloud コンソールで、API Hub の [サプライ チェーン] ページに移動します。

    [API Hub] に移動
  2. [フィルタ] フィールドで、必要に応じてサプライヤー オペレーションまたはコンシューマー オペレーションを指定して、関連する依存関係を参照します。フィルタ機能を使用すると、指定したオペレーションにリンクされているすべての依存関係を見つけることができます。
  3. 目的の依存関係を特定したら、削除アイコンをクリックして、この依存関係を削除します。

REST

API Hub から依存関係を削除するには、依存関係の削除 API を使用します。

curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/dependencies/DEPENDENCY_ID"
  -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X DELETE -H "Content-Type: application/json"

次のように置き換えます。

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。このホスト プロジェクトは API Hub のプロビジョニング時に選択されたものです。
  • HUB_LOCATION: ホスト プロジェクトの場所。この場所は API Hub のプロビジョニング時に選択されたものです。
  • DEPENDENCY_ID: 削除する依存関係の ID。

依存関係を編集する

このセクションでは、依存関係を編集する方法について説明します。編集可能な属性は、依存関係の説明のみです。

Console

API を編集するには:

  1. Google Cloud コンソールで、API Hub の [サプライ チェーン] ページに移動します。

    [API Hub] に移動
  2. [フィルタ] フィールドで、必要に応じてサプライヤー オペレーションまたはコンシューマー オペレーションを指定して、関連する依存関係を参照します。フィルタ機能を使用すると、指定したオペレーションにリンクされているすべての依存関係を見つけることができます。
  3. 目的の依存関係を見つけて、[詳細を表示] をクリックします。
  4. [依存関係] ページで、説明と属性を編集できます。編集アイコンを使用して、これらのフィールドの編集を有効にします。
  5. [保存] をクリックします。

REST

デプロイメントを編集するには、依存関係へのパッチの適用 API を使用します。

curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/dependencies/DEPENDENCY_ID"
    -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X PATCH -H "Content-Type: application/json"
    '{
      'description': DESCRIPTION
    {'

次のように置き換えます。

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。このホスト プロジェクトは API Hub のプロビジョニング時に選択されたものです。
  • HUB_LOCATION: ホスト プロジェクトの場所。この場所は API Hub のプロビジョニング時に選択されたものです。
  • DEPLOYMENT_ID: 編集するデプロイメントの ID。
  • DESCRIPTION: 編集可能な属性は description のみです。