修改网关以使用 OpenAPI 3.x

本页介绍了如何修改现有 API 网关,以使用 OpenAPI 3.x 规范作为其 API 配置。

准备工作

  • 确认您已配置一个具有 OpenAPI 2.0 规范的现有 API Gateway 实例。
  • 安装 gcloud CLI。如需了解详情,请参阅安装 Google Cloud CLI

修改 API 配置以使用 OpenAPI 3.x

如需修改现有的 OpenAPI 2.0 API Gateway 配置以使用 OpenAPI 3.x,请完成以下步骤:

查找当前 API 配置

查找与网关关联的 API 配置。

  1. 描述您的 API Gateway 实例:

    gcloud api-gateway gateways describe GATEWAY_ID --project=PROJECT_ID --location=GATEWAY_LOCATION
    

    替换以下内容:

    • GATEWAY_ID:网关的 ID。
    • PROJECT_ID:您的 Google Cloud 项目 ID。
    • GATEWAY_LOCATION:网关的位置。

    输出会显示 apiConfig 路径,例如:

    apiConfig: projects/my-project/locations/global/apis/my-api/configs/my-gateway-config
    createTime: '2025-03-25T02:49:58.641650649Z'
    defaultHostname: my-gateway-a1b2c3d4.uc.gateway.dev
    displayName: My gateway
    name: projects/my-project/locations/us-west1/gateways/my-new-gateway
    state: ACTIVE
    updateTime: '2025-03-25T02:51:52.674308428Z'
    

获取 OpenAPI 文档

如需获取您确定的 API 配置的 OpenAPI 文档,请执行以下操作:

  1. 描述 API 配置:

    gcloud api-gateway api-configs describe CONFIG_ID --api=API_ID --project=PROJECT_ID --view=FULL
    

    替换以下内容:

    • CONFIG_ID:API 配置的 ID。
    • API_ID:您的 API 的 ID。
    • PROJECT_ID:您的 Google Cloud 项目 ID。

    输出会显示 openapiDocuments 部分,其中包含 OpenAPI 文档的 base64 编码内容:

    createTime: '2024-02-16T21:11:36.293169474Z'
    displayName: my-api-config
    gatewayServiceAccount: projects/-/serviceAccounts/api-gateway-sa@my-sandbox.iam.gserviceaccount.com
    name: projects/my-project-id/locations/global/apis/my-api/configs/my-gateway-config
    openapiDocuments:
    -   document:
        contents: IyBvc...
        path: apigateway-config.yaml
    serviceConfigId: my-api-config-0a1fjkfeb7t8z
    state: ACTIVE
    updateTime: '2024-02-16T21:13:45.626771120Z'
    

解码 OpenAPI 文档

如需对 base64 编码的 OpenAPI 文档内容进行解码,请执行以下操作:

  1. 解码 contents 值:

    echo 'IyBvc...' |