管理版本

本页面适用于 ApigeeApigee Hybrid

本主题介绍如何创建和管理 API 版本。如需了解版本,请参阅版本概览

向 API 添加版本

您可以使用控制台或 REST API 向现有 API 添加 API 版本

控制台

如需添加新版本,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 API Hub 页面。

    转到 API Hub
  2. 点击 API
  3. 找到您要进行版本控制的 API。使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
  4. 点击某个 API 以查看其详细信息。
  5. 版本标签页下,点击添加版本
  6. 添加新版本表单中指定版本详细信息。您必须提供显示名称。其他属性可视需要进行设置。如需详细了解属性,请参阅管理属性
    • 名称:(必填)您必须提供显示名。
    • 说明:添加版本的说明。
    • 生命周期:选择 API 的生命周期阶段。
    • 合规性:选择合规性属性。
    • 认证:选择一种认证属性。
    • 文档:输入 API 文档的网址。
    • Add a Specification file(添加规范文件):导入要与版本关联的 API 规范文件。请参阅向版本添加 API 规范
    • Link to a deployment(关联到部署):选择要与 API 关联的一个或多个部署
    • User-defined attributes(用户定义的属性):用户定义的属性是您根据组织或团队需求定义的属性。请参阅用户属性
  7. 点击创建

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 关联的所有版本,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 API Hub 页面。

    转到 API Hub
  2. 点击 API
  3. 找到您要检查的 API。使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
  4. 选择一个 API。
  5. 版本会在 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 版本的详细信息,包括其属性、操作、部署和规范文件。

控制台

如需在控制台中查看版本详细信息,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 API Hub 页面。

    转到 API Hub
  2. 点击 API
  3. 找到您要检查的 API。使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
  4. 选择一个 API。
  5. 版本表中,点击一个版本以查看版本详情页面。

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 版本。只有在先删除所有底层规范、操作、定义和关联部署的情况下,您才能删除版本。

控制台

如需删除版本,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 API Hub 页面。

    转到 API Hub
  2. 点击 API
  3. 找到包含您要删除的版本的 API。使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
  4. 选择一个 API。
  5. 版本表中,找到您要删除的版本。
  6. 操作菜单(版本所在行的右侧)中,点击删除

REST

如需使用删除 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。

修改版本

控制台

如需修改版本,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 API Hub 页面。

    转到 API Hub
  2. 点击 API
  3. 使用过滤条件指定关键字以过滤 API 列表。如果需要,请使用搜索查找 API。
  4. 选择一个 API。
  5. 版本表中,找到您要修改的版本。
  6. 从版本行右侧的操作菜单中选择修改。您还可以通过点击版本详情页面中的修改版本来访问修改功能。如需访问详情页面,只需点击版本表中的某个版本即可。
  7. 完成修改后,点击保存以保存更改。有关可修改属性的说明,请参阅 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"
}