本页面适用于 Apigee 和 Apigee Hybrid。
本文档介绍如何在已注册的 API 之间创建和管理依赖项。依赖项可帮助您了解 API 之间的关系。请参阅依赖项简介。
借助该界面,您可以一目了然地了解使用方 API 与提供方 API 之间的关系,其中使用方依赖于提供方的操作。请参阅图 1。
创建依赖项
您可以使用 REST API 创建依赖项实体。
控制台
如需创建依赖项,请执行以下操作:
在 Google Cloud 控制台中,前往 API Hub 中的供应链页面。
转到 API Hub- 点击创建依赖项。
- 添加依赖项说明。
- 在选择提供方资源下,选择操作。
- 选择提供相应操作的 API。
- 选择提供相应操作的 API 的 API 版本。
- 选择提供给使用方的操作。例如:
GET-/items
。 - 在选择使用方资源下,选择操作。
- 从提供方中选择使用该操作的 API。
- 选择使用该操作的 API 版本。
- 选择使用所提供 API 的操作。例如:
GET-/categories
- (可选)为“设置”中定义的任何用户定义属性提供值。
- 点击创建。新依赖项会显示在“依赖项”列表页面中(图 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 的所有版本关联的所有依赖项,或列出与特定版本关联的所有依赖项。
控制台
如需列出依赖项,请执行以下操作:
在 Google Cloud 控制台中,前往 API Hub 中的供应链页面。已知依赖项列表会显示在“供应链”页面中。
转到 API Hub- 在过滤条件字段中,根据需要指定提供方和/或使用方操作以返回所需的依赖项。借助过滤条件功能,您可以查找与指定操作相关联的所有依赖项。
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 依赖项的详细信息。 您可以查看使用方和提供方的详细信息,还可以查看依赖项的详细信息(例如,可能表示依赖项已中断等错误)。
控制台
如需获取依赖项,请执行以下操作:
在 Google Cloud 控制台中,前往 API Hub 中的供应链页面。
转到 API Hub- 在过滤条件字段中,根据需要指定提供方和/或使用方操作以返回所需的依赖项。借助过滤条件功能,您可以查找与指定操作相关联的所有依赖项。
- 找到相关依赖项,然后点击查看详细信息。
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 依赖项。
控制台
如需删除依赖项,请执行以下操作:
在 Google Cloud 控制台中,前往 API Hub 中的供应链页面。
转到 API Hub- 在过滤条件字段中,根据需要指定提供方和/或使用方操作以返回所需的依赖项。借助过滤条件功能,您可以查找与指定操作相关联的所有依赖项。
- 找到所需的依赖项,然后点击删除图标以删除该依赖项。
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,请执行以下操作:
在 Google Cloud 控制台中,前往 API Hub 中的供应链页面。
转到 API Hub- 在过滤条件字段中,根据需要指定提供方和/或使用方操作以返回所需的依赖项。借助过滤条件功能,您可以查找与指定操作相关联的所有依赖项。
- 找到所需的依赖项,然后点击查看详细信息。
- 在依赖项页面上,您可以修改说明和属性。使用修改图标可对这些字段进行修改。
- 点击保存。
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:唯一可修改的属性是说明。