本页面适用于 Apigee 和 Apigee Hybrid。
本主题介绍如何创建和管理 API 版本。如需了解版本,请参阅版本概览。
向 API 添加版本
您可以使用控制台或 REST API 向现有 API 添加 API 版本。
控制台
如需添加新版本,请执行以下操作:
在 Google Cloud 控制台中,转到 API Hub 页面。
转到 API Hub- 点击 API。
- 找到您要进行版本控制的 API。使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
- 点击某个 API 以查看其详细信息。
- 在版本标签页下,点击添加版本。
- 在添加新版本表单中指定版本详细信息。您必须提供显示名称。其他属性可视需要进行设置。如需详细了解属性,请参阅管理属性。
- 名称:(必填)您必须提供显示名。
- 说明:添加版本的说明。
- 生命周期:选择 API 的生命周期阶段。
- 合规性:选择合规性属性。
- 认证:选择一种认证属性。
- 文档:输入 API 文档的网址。
- Add a Specification file(添加规范文件):导入要与版本关联的 API 规范文件。请参阅向版本添加 API 规范。
- Link to a deployment(关联到部署):选择要与 API 关联的一个或多个部署。
- User-defined attributes:用户定义的属性是您根据组织或团队需求定义的属性。请参阅用户属性。
- 点击创建。
REST
如需使用创建 API 版本 API 添加新版本,请执行以下操作:
curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID/versions?version_id=VERSION_ID" -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X POST -H "Content-Type: application/json" \ '{ "display-name": DISPLAY_NAME, "description": "DESCRIPTION" # description is an optional attribute }'
替换以下内容:
- HUB_PROJECT:API Hub 宿主项目的名称。预配 API Hub 时选择了宿主项目。
- HUB_LOCATION:宿主项目的位置。该位置是在预配 API Hub 时选择的。
- API_ID:要向其添加版本的 API 资源的唯一 ID。
- VERSION_ID:(可选)API 版本的唯一标识符。如果未提供,将使用系统生成的 ID。名称必须是 4-63 个字符的字符串,其中有效字符为
/[a-z][0-9]-/.
- DISPLAY_NAME:(必需)版本的显示名称。您可以根据自己所需使用任何名称。
- DESCRIPTION:(可选)您可以添加多个可选属性来描述版本,包括说明、所有者姓名、文档链接等。版本资源定义中列出了并介绍了这些可选属性。
示例输出:
{ "name": "projects/myproject/locations/myproject/apis/docs-api-1/versions/myversion1", "displayName": "My Version 1", "createTime": "2024-04-02T18:48:41.162360Z", "updateTime": "2024-04-02T18:48:41.162360Z" }
列出 API 版本
本部分介绍了如何列出与已注册的 API 关联的版本。
控制台
如需在控制台中查看与已注册的 API 关联的所有版本,请执行以下操作:
在 Google Cloud 控制台中,转到 API Hub 页面。
转到 API Hub- 点击 API。
- 找到您要检查的 API。使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
- 选择一个 API。
- 版本会在 API 详情页面的版本表中列出。
REST
如需查看与已注册 API 关联的所有版本,请使用列出 API 版本 API:
curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID/versions" -H "Authorization: Bearer: $(gcloud auth print-access-token)" -H "Content-Type: application/json"
请替换以下内容:
- HUB_PROJECT:API Hub 宿主项目的名称。预配 API Hub 时选择了宿主项目。
- HUB_LOCATION:宿主项目的位置。该位置是在预配 API Hub 时选择的。
- API_ID:API 资源的唯一 ID。
示例输出:
{ "versions": [ { "name": "projects/myproject/locations/us-central1/apis/streetcarts-test/versions/streetcarts-testv1", "displayName": "Streetcarts Test v1" } ] }
获取 API 版本详细信息
本部分介绍如何获取有关 API 版本的详细信息,包括其属性、操作、部署和规范文件。
控制台
如需在控制台中查看版本详细信息,请执行以下操作:
在 Google Cloud 控制台中,转到 API Hub 页面。
转到 API Hub- 点击 API。
- 找到您要检查的 API。使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
- 选择一个 API。
- 在版本表中,点击一个版本以查看版本详情页面。
REST
如需使用获取 API 版本详细信息 API 查看版本的详细信息,请执行以下操作:
curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID/versions/VERSION_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。
- VERSION_ID:版本的唯一 ID。
示例输出:
{ "name": "projects/myproject/locations/us-central1/apis/streetcarts/versions/streetcarts_testv1", "displayName": "Test Version 3", "documentation": {}, "specs": [ "projects/myproject/locations/us-central1/apis/streetcarts/versions/streetcarts_testv1/specs/docs-spec-1" ], "apiOperations": [ "projects/myproject/locations/us-central1/apis/streetcarts/versions/streetcarts_testv1/operations/listpets", "projects/myproject/locations/us-central1/apis/streetcarts/versions/streetcarts_testv1/operations/createpets", "projects/myproject/locations/us-central1/apis/streetcarts/versions/streetcarts_testv1/operations/deletepet", "projects/myproject/locations/us-central1/apis/streetcarts/versions/streetcarts_testv1/operations/getpetbyid", "projects/myproject/locations/us-central1/apis/streetcarts/versions/streetcarts_testv1/operations/updatepet" ], "definitions": [ "projects/myproject/locations/us-central1/apis/streetcarts/versions/streetcarts_testv1/definitions/pet" ], "createTime": "2024-04-04T14:53:57.299213423Z", "updateTime": "2024-04-04T14:53:58.027321138Z" }
删除 API 版本
本部分介绍了如何删除与 API 资源关联的 API 版本。
控制台
在界面中删除版本时,与该版本关联的所有底层规范(如果有)都会被删除。
如需删除版本,请执行以下操作:
在 Google Cloud 控制台中,转到 API Hub 页面。
转到 API Hub- 点击 API。
- 找到包含您要删除的版本的 API。使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
- 选择一个 API。
- 在版本表中,找到您要删除的版本。
- 在操作菜单(版本所在行的右侧)中,点击删除。
REST
默认情况下,只有在删除所有底层规范后,才能删除版本。如果要一步删除某个版本下的所有规范,请在 Delete REST API 中将 force
查询参数设置为 true
。
如需使用删除 API 版本 API 删除版本,请执行以下操作:
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \ 'https://apihub.googleapis.com/v1/projects/API_PROJECT/locations/API_LOCATION/apis/API_ID/versions/VERSION_ID'
替换以下内容:
- API_PROJECT:API Hub 宿主项目的名称。预配 API Hub 时选择了宿主项目。
- API_LOCATION:宿主项目的位置。该位置是在预配 API Hub 时选择的。
- API_ID:API 资源的唯一 ID。
- VERSION_ID:要删除的版本的 ID。
如需删除版本和所有底层规范,请将 force
查询参数设置为 true
。例如:
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \ 'https://apihub.googleapis.com/v1/projects/API_PROJECT/locations/API_LOCATION/apis/API_ID/versions/VERSION_ID?force=true'
修改版本
控制台
如需修改版本,请执行以下操作:
在 Google Cloud 控制台中,转到 API Hub 页面。
转到 API Hub- 点击 API。
- 使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
- 选择一个 API。
- 在版本表中,找到您要修改的版本。
- 从版本行右侧的操作菜单中选择修改。您还可以通过点击版本详情页面中的修改版本来访问修改功能。如需访问详情页面,只需点击版本表中的某个版本即可。
- 完成修改后,点击保存以保存更改。有关可修改属性的说明,请参阅 REST API 参考文档中的版本资源说明。
REST
如需使用 REST API 修改版本,请执行以下操作:
curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT/locations/HUB_LOCATION/apis/API_ID/versions/VERSION_ID?updateMask=LIST_OF_ATTRIBUTES" -H "Authorization: Bearer: $(gcloud auth print-access-token)" -X PATCH -H "Content-Type: application/json" \ '{ "display-name": DISPLAY_NAME, # Use the request body to specify attribute changes "description": "DESCRIPTION" }'
替换以下内容:
- HUB_PROJECT:API Hub 宿主项目的名称。预配 API Hub 时选择了宿主项目。
- HUB_LOCATION:宿主项目的位置。该位置是在预配 API Hub 时选择的。
- API_ID:包含您要修改的版本的 API 的唯一 ID。
- VERSION_ID:要修改的版本的 ID。
- DESCRIPTION:您可以在请求正文中添加其他可修改的属性,例如说明和其他信息。Apigee Hub API 参考文档中列出了可修改的属性。 补丁版本 API。
- LIST_OF_ATTRIBUTES:完全限定属性名称的逗号分隔列表。例如:
?updateMask="description"
。
示例输出:
{ "name": "projects/myproject/locations/us-central1/apis/streetcarts-test/versions/streetcarts-testv1", "displayName": "Streetcarts Test v1", "description": "This is a revision of the test version.", "documentation": {}, "createTime": "2024-04-18T19:57:11.870761Z", "updateTime": "2024-04-18T20:23:42.465324Z" }