管理依赖项

本页面适用于 ApigeeApigee Hybrid

本文档介绍如何在已注册的 API 之间创建和管理依赖项。依赖项可帮助您了解 API 之间的关系。请参阅依赖项简介

借助该界面,您可以一目了然地了解使用方 API 与提供方 API 之间的关系,其中使用方依赖于提供方的操作。请参阅图 1。

API Hub 依赖项界面。
图 1. API 依赖项界面会显示使用方/提供方对,其中使用方操作依赖于提供方操作。您可以轻松展开细目以查看每个依赖项的详细信息。您还可以按使用方和/或提供方操作过滤表。

创建依赖项

您可以使用 REST API 创建依赖项实体。

控制台

如需创建依赖项,请执行以下操作:

  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_api_resource_name: RESOURCE_NAME"
      },
      "consumer": {
        // Specify one of the following:
        "operation_resource_name": RESOURCE_NAME
        // OR
        "external_api_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 的所有版本关联的所有依赖项,或列出与特定版本关联的所有依赖项。

控制台

如需列出依赖项,请执行以下操作:

  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 依赖项的详细信息。 您可以查看使用方和提供方的详细信息,还可以查看依赖项的详细信息(例如,可能表示依赖项已中断等错误)。

控制台

如需获取依赖项,请执行以下操作:

  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 依赖项。

控制台

如需删除依赖项,请执行以下操作:

  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。

修改依赖项

本部分介绍如何修改依赖项。唯一可修改的属性是依赖项说明。

控制台

如需修改 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:唯一可修改的属性是说明。