API リソースを管理する

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

API を登録する

API を API Hub に登録する際は、API を表すエンティティを作成して保存します。このエンティティを API リソースと呼びます。API Hub に保存されている API リソースは検索可能で、API に関する詳細なオペレーション情報と説明情報を提供します。API を登録する際、または登録後に、API リソース属性を追加して編集し、API の詳細な説明を作成できます。

コンソール

API を登録するには:

  1. Google Cloud コンソールで、Apigee API Hub の [APIs] ページに移動します。

    [API Hub] に移動
  2. [API を登録] をクリックします。
  3. [General details] で、必要に応じて API の一意の ID を指定します。ID を指定しない場合、システムによって ID が生成されます。ID を入力する場合は、[Specify Unique ID] をクリックします。

    ID は 4~500 文字にする必要があり、有効な文字は /[A-Z][a-z][0-9]-/. です。この ID は、完全修飾の一意の API リソース名の最後のコンポーネントで、形式は projects/PROJECT/locations/LOCATION/apis/API_ID です。

  4. (必須)API リソースの表示名を指定します。
  5. 必要に応じて、API を記述する属性を追加します。いつでも API に戻って、API 属性を追加または変更できます。API リソースを編集するをご覧ください。
    • Owner information: (省略可)API オーナーの名前とメールアドレス。
    • その他の詳細: (省略可)API を定義し、検索しやすくするために属性を指定します。これらの属性の一部のデフォルト値は、設定で定義できます。詳しくは、属性を管理するをご覧ください。
    • User defined attributes: (省略可)設定で定義する属性です。詳しくは、属性を管理するをご覧ください。
  6. [登録] をクリックします。

REST

API を登録するには、Create API REST API を使用します。

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{
    "display_name": "DISPLAY_NAME",            # Required attribute
    "description": "DESCRIPTION"               # description is an optional attribute
    }
    'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis?api_id=API_ID

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

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。API Hub のプロビジョニング時にホスト プロジェクトが選択されました。
  • HUB_LOCATION: ホスト プロジェクトの場所。この場所は API Hub のプロビジョニング時に選択されたものです。
  • API_ID:(省略可)API の一意の ID を入力します。このクエリ パラメータを指定しない場合、システムによって一意の ID が生成されます。ID は 4~500 文字にする必要があり、有効な文字は /[A-Z][a-z][0-9]-/. です。この ID は、完全修飾の一意の API リソース名の最後のコンポーネントで、形式は projects/PROJECT/locations/LOCATION/apis/API_ID です。
  • DISPLAY_NAME:(必須)API リソースの表示名。任意の名前を付けることができます。
  • DESCRIPTION:(省略可)説明、オーナー、API ドキュメントへのリンクなど、API リソースの説明に任意の属性を追加できます。これらの省略可能な属性は、API リソースの定義に記載されています。

API リソースを一覧表示する

このセクションでは、API Hub で API リソースを一覧表示する方法について説明します。フィルタを追加すると、レスポンスで返される API を制限できます。

コンソール

API リソースを一覧表示するには:

  1. Google Cloud コンソールで、Apigee API Hub の [APIs] ページに移動します。

    [API Hub] に移動

    API Hub に追加されたすべての API のリストは、API のホームページに表示されます。

  2. [フィルタ] を使用して、API のリストをフィルタするキーワードを指定します。必要に応じて、[検索] を使用して API を探します。

REST

API Hub プロジェクト内のすべての API リソースを一覧表示するには、List APIs API を使用します。

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

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

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。API Hub のプロビジョニング時にホスト プロジェクトが選択されました。
  • HUB_LOCATION: ホスト プロジェクトのロケーション。API Hub のプロビジョニング時にロケーションが選択されました。

出力例:

{
  "apis": [
    {
      "name": "projects/myproject/locations/us-central1/apis/a035eb3b-658e-467a-89d3-9cca2bbacd32-2",
      "displayName": "TestApi2",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/a035eb3b-658e-467a-89d3-9cca2bbacd32-1",
      "displayName": "TestApi1",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/foo9013cfev",
      "displayName": "sample",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/foo90121",
      "displayName": "sample",
      "documentation": {}
    },
    ...
    ],
    "nextPageToken": "f4f4d78b-a974-46db-a214-dc139f8e9c8a"
  }

フィルタを使用した REST の例

API を使用してリストの結果をフィルタリングできます。この例では、システム定義の属性に基づいて API をフィルタリングします。

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis' \
  -d filter="owner.email=\"testowner3@gmail.com\"" -d page_size=10

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

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。API Hub のプロビジョニング時にホスト プロジェクトが選択されました。
  • HUB_LOCATION: ホスト プロジェクトのロケーション。API Hub のプロビジョニング時にロケーションが選択されました。

出力例(オーナーでフィルタ):

{
  "apis": [
    {
      "name": "projects/myproject/locations/us-central1/apis/theme-park-management-api",
      "displayName": "Theme Park Management API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/restaurant-api",
      "displayName": "Restaurant API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/casino-management-api",
      "displayName": "Casino Management API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/hotel-boooking-api",
      "displayName": "Hotel Booking API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/test-march-26-api3",
      "displayName": "Test Pets API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/test-march-26-api2",
      "displayName": "Test Pets API",
      "documentation": {}
    },
    {
      "name": "projects/myproject/locations/us-central1/apis/test-march-26-api1",
      "displayName": "Test Pets API",
      "documentation": {}
    }
  ]
}

API リソースの詳細を取得する

このセクションでは、API リソースの詳細を取得する方法について説明します。

コンソール

API リソースの詳細を表示するには:

  1. Google Cloud コンソールで、Apigee API Hub の [APIs] ページに移動します。

    [API Hub] に移動
  2. [フィルタ] を使用して、API のリストをフィルタするキーワードを指定します。 必要に応じて、[検索] を使用して API を探します。
  3. API をクリックして、詳細ページを表示します。

REST

API リソースの詳細を表示するには、Get API resource details API を使用します。

curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_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 のプロビジョニング時に選択されたものです。
  • API_ID: API リソースの一意の ID。

出力例:

{
  "name": "projects/myproject/locations/us-central1/apis/myapi",
  "displayName": "My Test API",
  "description": "This is a test API.",
  "documentation": {},
  "owner": {
    "displayName": "Test API,
    "email": "testowner@gmail.com"
  },
  "versions": [
    "projects/myproject/locations/us-central1/apis/myapi/versions/myapi-version1"
  ],
  "createTime": "2024-03-26T10:13:15.668867002Z",
  "updateTime": "2024-03-26T10:13:16.700716401Z"
}

API リソースを削除する

このセクションでは、API リソースを削除する方法について説明します。

コンソール

UI で API を削除すると、基盤となる API のバージョンと関連する API 仕様(存在する場合)がすべて削除されます。

API リソースを削除するには:

  1. Google Cloud コンソールで、Apigee API Hub の [APIs] ページに移動します。

    [API Hub] に移動
  2. [フィルタ] を使用して、API のリストをフィルタするキーワードを指定します。必要に応じて、[検索] を使用して、削除する API を探します。
  3. 操作メニュー(API を含む行の右側)で、[削除] をクリックします。

REST

API Hub から API を削除するには、Delete API API を使用します。

デフォルトでは、API を削除できるのは、基盤となるバージョンがすべて削除された場合のみです。API のすべてのバージョンを 1 回で削除するには、Delete REST API で force クエリ パラメータを true に設定します。

curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID'

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

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。API Hub のプロビジョニング時にホスト プロジェクトが選択されました。
  • HUB_LOCATION: ホスト プロジェクトのロケーション。API Hub のプロビジョニング時にロケーションが選択されました。
  • API_ID: 削除する API リソースの一意の ID。

API とすべての基盤となるバージョンを削除するには、force クエリ パラメータを true に設定します。例:

curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  'https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID?force=true'

API リソースを編集する

このセクションでは、API リソースを編集する方法について説明します。すべての API リソース属性を編集できるわけではありません。編集可能なフィールドの一覧については、Patch API リファレンス ドキュメントをご覧ください。

コンソール

API を編集するには:

  1. Google Cloud コンソールで、Apigee API Hub の [APIs] ページに移動します。

    [API Hub] に移動
  2. [フィルタ] を使用して、API のリストをフィルタするキーワードを指定します。必要に応じて、[検索] を使用して、編集する API を探します。
  3. API をクリックして、詳細ページを表示します。
  4. [API の編集] をクリックします。
  5. [API の編集] ページで変更を行います。[続行] をクリックして、編集可能な属性の次のセットに移動します。
    • General details: API の表示名を編集できます。
    • Owner information: API のオーナーの名前とメールアドレス。
    • 補足情報: システム定義の属性です。これらの属性のデフォルト値は、[Manage attributes] でカスタマイズできます。
    • User defined attributes: ユーザー定義のカスタム属性です。カスタム属性は [Manage attributes] で指定できます。
  6. [保存] をクリックします。

REST

API リソースを編集するには、Patch API resource API を使用します。

curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{
          "display_name": "Updated Test Docs API",        # Example request body with changes
          "description": "This is the updated test API.",
          "owner": {
            "display_name": "Updated Docs Owner",
            "email": "updateddocsowner@gmail.com"
            }
          }
          ' https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID

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

  • HUB_PROJECT: API Hub のホスト プロジェクトの名前。このホスト プロジェクトは API Hub のプロビジョニング時に選択されたものです。
  • HUB_LOCATION: ホスト プロジェクトのロケーション。この場所は API Hub のプロビジョニング時に選択されたものです。
  • API_ID: 更新する API の一意の ID。
  • リクエスト本文: リクエスト本文を使用して、変更する属性を指定します。API リクエスト本文の説明をご覧ください。