首页 / 资讯中心 / 文章详情

@googleapis/sql 客户端库版本演进全解析:从 v0.1 到 v9.0 的破坏性变更、Node 门槛与 Cloud SQL Admin API 接入指南

@googleapis/sql 客户端库版本演进全解析:从 v0.1 到 v9.0 的破坏性变更、Node 门槛与 Cloud SQL Admin API 接入指南 ★ FEATURED ARTICLE
后端【免费下载链接】google-api-nodejs-clientGoogles officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included.项目地址https://gitcode.com/gh_mirrors/go/google-api-nodejs-client点击查看免费下载本文以 src/apis/sql/CHANGELOG.md 为骨架系统梳理googleapis/sqlGoogle Cloud SQL Admin API 的官方 Node.js 客户端从 2021 年初版到 2026 年 v9.0 的完整版本脉络并结合仓库中的 src/apis/sql/v1beta4.ts、src/apis/sql/package.json、src/apis/sql/index.ts 等源码深入解释每一次破坏性变更背后的 Node 运行时门槛、依赖链升级与 API 同步机制。读完本文你将能读懂该模块的版本时间线与升级代价判断自己的 Node 环境是否满足要求并掌握通过google.sql(v1beta4)快速接入 Cloud SQL 实例管理能力的最小可运行写法。一、模块定位Cloud SQL Admin API 的官方 Node.js 客户端googleapis/sql是 google-api-nodejs-client 项目中按 API 拆分发布的独立子包之一封装的是Cloud SQL Admin APIsqladmin.googleapis.com用于在 Node.js 侧完成 Cloud SQL 数据库实例的全生命周期管理创建、查询、修改、删除实例管理备份、用户、数据库、SSL 证书、导出导入与容灾切换等。模块的安装方式见 src/apis/sql/README.md$ npm install googleapis/sql在 src/apis/sql/package.json 中可以看到该包的当前元信息版本号为9.0.1与 CHANGELOG 最新条目一致许可证为 Apache-2.0唯一的运行时依赖是googleapis-common: ^9.0.0并要求Node 22.0.0engines字段。如果你习惯使用整体包也可以直接安装仓库根 package.json 对应的googleapis主包再通过google.sql(v1beta4)获取客户端。二、版本演进全景CHANGELOG 逐版本解读src/apis/sql/CHANGELOG.md 记录了从 v0.1.0 到 v9.0.1 的全部发布历史。整体可以划分为六个阶段下面完整继承原文档的全部版本条目并逐段解读。阶段一v0.x2021-03 ~ 2022-09——从初版到功能积累版本日期类型要点0.1.02021-03 之前—模块初版基线0.2.02021-03-18Featuresauth: 增加 workload identity federation 支持issue #2517sqladmin: 更新 API0.2.12021-04-07Bug Fixessqladmin: 更新 API0.2.22021-06-18Bug Fixessql: 更新 API0.2.32021-06-25Bug Fixessql: 更新 API0.3.02021-09-14Featuresauth: workload identity federationissue #2517sql: 更新 API多次0.3.12022-09-21Bug Fixessql: 更新 API这一阶段的特点是功能积累与上游 API 同步几乎每次 Bug Fixes 都来自 sql: update the API / sqladmin: update the API即重新拉取 Google API Discovery 文档并重新生成客户端代码以保证对上游 Cloud SQL Admin API 新增字段与接口的覆盖。0.3.0 同时记录了googleapis-common升级到 v5以及构建工具 webpack 从 4 升级到 5。阶段二v1.0.02022-10-28——首个 1.0 正式版版本日期类型要点1.0.02022-10-28⚠ BREAKING运行 generator子模块开始要求 Node 12issue #3073这是模块的 GAGeneral Availability节点。破坏性变更来自run the generator (submodules now require Node 12)API 生成器统一把子包的 Node 最低版本提升到 12意味着使用 v1.0.0 起需要 Node 12 环境。阶段三v1.0.x2023——维护期小版本版本日期类型要点1.0.12023-08-09Bug Fixessql: 更新 API1.0.22023-08-25Bug Fixesdeps:googleapis-common升级到 v71.0.32023-10-11Bug Fixesdeps:googleapis-commonv7sql: 更新 API此阶段以依赖与 API 的例行更新为主无破坏性变更。注意从 v1.0.3 开始CHANGELOG 同时出现sql: update the API与googleapis-common的版本升级这两条更新线在后续版本中持续并行。阶段四v2 / v32025 上半年——Node 18 门槛版本日期类型要点2.0.02025-05-29⚠ BREAKING升级到 Node 182.0.12025-06-04Bug Fixesdeps:googleapis-common升级到 8.0.2-rc3.0.02025-06-30⚠ BREAKING升级到 Node 18Bug Fixes:googleapis-common8.0.2-rc3.0.12025-07-08Bug Fixessql: 更新 API2025 年 5 月至 6 月间客户端库整体将 Node 最低版本从 12 提升到18连续两个大版本都标注了相同的 BREAKING CHANGES这是第二次运行时门槛跃迁。期间googleapis-common从 v7 进入 8.0.x 系列。阶段五v4.0.0 与 v5.x2025 下半年——重发与 API 再同步版本日期类型要点4.0.02025-09-16⚠ BREAKING为所有库统一重发issue #3769Bug Fixes: 重发、googleapis-common升级到 8.0.05.0.02025-10-15⚠ BREAKING本次发布包含破坏性变更Features: 运行 generatorissue #3814v4.0.0 的破坏性变更来自一次仓库级 releasing for our libraries 统一动作同时把googleapis-common锁定到 8.0.0。v5.0.0 则是又一次 generator 重跑上游 API 变更带来的破坏性改动以 This release has breaking changes. 概括没有给出具体字段级说明——升级时建议以 API 文档与类型声明的 diff 为准。阶段六v6 ~ v92026-09——Node 22 三连跳与稳定性修复版本日期类型要点5.1.02026-09-02Features运行 generatorissue #3992Bug Fixes: 依赖升级到 Node 225.1.12026-09-09Bug Fixes重新支持 Node 186.0.02026-09-09⚠ BREAKINGNode 22 门槛 运行 generator7.0.02026-09-10⚠ BREAKINGNode 22 门槛8.0.02026-09-10⚠ BREAKINGNode 22 门槛 运行 generatorBug Fixes: 重新支持 Node 18、依赖升级到 Node 229.0.02026-09-14⚠ BREAKING所有子包再次要求 Node 22issue #4020Features: 同上9.0.12026-09-23Bug Fixessql: 更新 API2026 年 9 月出现了密集的 5.1.x → 9.x 发布潮先是在 5.1.0 中把依赖升级到 Node 22随即 5.1.1 又加回 Node 18 支持随后 v6/v7/v8/v9 连续四个大版本以不同组合方式推进Node 22 最低版本要求issue #4011、#4020期间穿插 generator 重跑与依赖升级。v9.0.0 明确Update apiary to minimum Node version of 22 again - all packagesv9.0.1 则以一次例行的sql: update the API收尾当前源码 src/apis/sql/package.json 中的node: 22.0.0正是这一阶段成果的落点。三、破坏性变更深度解析Node 运行时门槛的三连跳从 CHANGELOG 可以清晰提取出该模块的 Node 最低版本演进轨迹Node 12v1.0.02022-10-28issue #3073子模块统一要求Node 18v2.0.0 / v3.0.02025-05 ~ 2025-06仓库级升级Node 22v6.0.0 ~ v9.0.02026-09issue #4011、#4020先是依赖先行升级随后所有子包统一提升。这与仓库根 package.json 中engines: { node: 22.0.0 }的当前要求完全一致。每一次门槛跃迁都对应 CHANGELOG 中的⚠ BREAKING CHANGES含义是升级到这些大版本后运行环境必须满足新的 Node 版本要求否则安装或运行时会因engines校验失败。对于仍在维护老 Node 服务如 16/18的团队5.1.1 中 add back support for node 18 的历史条目说明 Node 18 在 2026-09 之后已被视为尽力支持的降级目标而非正式承诺。四、依赖链条演进googleapis-common 与构建工具除 Node 门槛外CHANGELOG 还记录了两条依赖主线googleapis-commonv50.3.0→ v71.0.2 / 1.0.3→ 8.0.03.0.2 / 4.0.0→ 8.0.2-rc2.0.1 / 3.0.0→ 9.0.0当前见 src/apis/sql/package.json。googleapis-common是 google-api-nodejs-client 各子包的公共运行时层提供getAPI、createAPIRequest、AuthPlus、GoogleConfigurable等基础设施见 src/apis/sql/index.ts 的导入语句其升级往往伴随 HTTP 传输、鉴权与类型系统的行为变化这也是多个版本把deps升级列入 Bug Fixes 的原因。webpack 4 → 5记录在 v0.3.02021-09-14issue #2524。构建链升级不直接影响 API 行为但影响子包在浏览器打包场景下的可用性与产物体积相关配置见 src/apis/sql/webpack.config.js。此外多个版本标注的run the generator如 v5.0.0、v5.1.0、v6.0.0、v8.0.0对应本仓库的 API 代码生成流程仓库通过 discovery 文档 src/generator 模板generator.md 有整体说明重新生成 src/apis/sql/v1beta4.ts 这类文件从而把上游 Cloud SQL Admin API 的新字段、新接口同步进客户端。五、能力演进Workload Identity Federation 与 API 同步更新CHANGELOG 中的 Features 除了 Node 版本升级外还有一个值得关注的能力点auth: adds support workload identity federationv0.2.0、v0.3.0issue #2517。这意味着客户端所依赖的鉴权层支持 Workload Identity Federation——即通过外部身份池/工作负载身份池换取短期 OAuth 凭证让运行在 Google Cloud 之外的容器、CI/CD 或本地环境无需长期保存服务账号密钥即可访问 Cloud SQL Admin API。至于反复出现的 sql: update the API / sqladmin: update the APIv0.2.0 ~ v9.0.1 共十余次其含义是跟随上游 API 演进重新生成类型声明与方法定义Cloud SQL Admin API 每增加一个字段例如新增数据库版本、新的实例配置项或调整某个接口行为客户端就在下一次发布中同步。这也解释了为什么 CHANGELOG 中 Bug Fixes 绝大多数是 API 更新而非缺陷修复。六、源码结构入口、版本注册与资源全景6.1 模块入口与版本注册src/apis/sql/index.ts 是子包的对外入口自动生成核心逻辑只有几十行VERSIONS对象将版本号v1beta4映射到sql_v1beta4.Sql类sql(version | options)工厂函数通过googleapis-common的getAPI返回对应客户端实例同时导出sql_v1beta4命名空间、AuthPlus及一组公共类型。也就是说当前googleapis/sql只发布v1beta4一个 API 版本。调用方式为const {google} require(googleapis); const sql google.sql(v1beta4);6.2 Sql 类与九大资源组在 src/apis/sql/v1beta4.ts 中Sql类在构造时挂载了 9 个资源对象资源职责backupRuns备份运行记录创建、查询、删除、列举备份databases实例内数据库的增删改查flags查询实例可用的数据库 flagsinstances实例全生命周期管理核心资源operations异步操作如创建实例的查询与列举projects项目级能力维护窗口重排、外部同步等sslCertsSSL 证书与临时客户端证书管理tiers查询可用实例规格tierusers实例用户管理6.3 instances 方法全景以资源方法最丰富的instances为例见 src/apis/sql/v1beta4.ts其方法覆盖了 Cloud SQL 运维的几乎所有场景生命周期insert创建、get、list、patch/update、delete、restart数据迁移clone克隆实例、export导出到 Cloud Storage、import从 SQL dump / CSV 导入、restoreBackup从备份恢复高可用与复制promoteReplica、startReplica、stopReplica、failover、demoteMaster安全resetSslConfig、addServerCa、listServerCas、rotateServerCaCA 轮换维护truncateLog截断 binlog。以instances.get的底层实现为例src/apis/sql/v1beta4.ts其请求会构造到https://sqladmin.googleapis.com/sql/v1beta4/projects/{project}/instances/{instance}rootUrl默认值见 src/apis/sql/v1beta4.tsrequiredParams声明project与instance为必填最终交给createAPIRequest发出。instances.list则额外支持filter如state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE多个条件空格分隔、默认 AND 语义、maxResults与pageToken分页参数见 src/apis/sql/v1beta4.ts。6.4 标准请求参数所有方法都支持一套全局标准参数定义于StandardParameters见 src/apis/sql/v1beta4.tsauth可传OAuth2Client/JWT/Compute/UserRefreshClient/GoogleAuth/ API Key 字符串、$.xgafvV1 错误格式、access_token、alt响应数据格式、callbackJSONP、fields部分响应字段选择、keyAPI Key、oauth_token、prettyPrint、quotaUser、uploadType、upload_protocol。日常使用推荐通过全局google.options({auth})绑定鉴权而非逐个方法传参。七、核心数据模型 Schemav1beta4.ts中定义了完整的数据模型以下是三个最核心的 Schema均可从源码注释获取字段语义Schema$DatabaseInstancesrc/apis/sql/v1beta4.ts实例的完整描述包含backendTypeSECOND_GEN / EXTERNAL、databaseVersionMySQL / PostgreSQL / SQL Server 各版本创建后不可变更、instanceTypeCLOUD_SQL_INSTANCE / ON_PREMISES_INSTANCE / READ_REPLICA_INSTANCE、stateRUNNABLE / SUSPENDED / PENDING_CREATE / MAINTENANCE / FAILED 等、ipAddresses、masterInstanceName、replicaNames、region创建后不可变更、settings、serverCaCert等。Schema$Settingssrc/apis/sql/v1beta4.ts实例的用户配置包括activationPolicyALWAYS / NEVER、availabilityTypeZONAL / REGIONAL 高可用、backupConfiguration每日备份、databaseFlags启动参数、dataDiskSizeGb数据盘大小最小 10GB、dataDiskTypePD_SSD 默认 / PD_HDD、ipConfiguration、maintenanceWindow、pricingPlanPER_USE / PACKAGE、settingsVersionupdate 时必须携带最新值以处理并发、storageAutoResize默认 true、storageAutoResizeLimit0 表示无上限、tier如db-n1-standard-1、userLabels等。Schema$Operationsrc/apis/sql/v1beta4.ts异步操作对象operationType可为 CREATE / DELETE / UPDATE / RESTART / IMPORT / EXPORT / BACKUP_VOLUME / RESTORE_VOLUME / CREATE_USER / DELETE_USER / CREATE_DATABASE / DELETE_DATABASEstatus可为 PENDING / RUNNING / DONEerror携带OperationErrors。实例的创建、导入导出、备份恢复等操作都会先返回 Operation再通过sql.operations.get轮询状态。此外源码还包含Schema$BackupRun备份运行src/apis/sql/v1beta4.ts、Schema$Database、Schema$Flag、Schema$SslCert、Schema$Tier、Schema$User等模型与 9 大资源一一对应。八、实战最小可运行接入示例综合 src/apis/sql/v1beta4.ts 各方法内嵌的示例模板下面是一个基于应用默认凭据ADC cloud-platform scope的实例列表示例可直接替换项目 ID 运行const {google} require(googleapis); const sql google.sql(v1beta4); async function main() { // Scopes 既可以写成数组也可以写成空格分隔的字符串 const auth new google.auth.GoogleAuth({ scopes: [ https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/sqlservice.admin, ], }); // 获取鉴权客户端并绑定到后续所有调用 const authClient await auth.getClient(); google.options({auth: authClient}); // 列举指定项目下的所有 Cloud SQL 实例 const res await sql.instances.list({ project: my-project-id, // 可选filter: state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE, // 可选maxResults: 100, }); console.log(res.data); } main().catch(e { console.error(e); throw e; });运行前需要满足的前提对应前面章节的版本约束Node 环境 22由 src/apis/sql/package.json 的engines决定已启用 Cloud SQL Admin API 并完成 ADC 初始化例如gcloud auth application-default login或为服务账号配置工作负载身份池使用全局包时通过google.sql(v1beta4)获取客户端使用独立子包时以require(googleapis/sql)的方式导入子包同样导出sql工厂与sql_v1beta4命名空间见 src/apis/sql/index.ts。九、升级与版本选择建议结合 CHANGELOG 的破坏性变更时间线给出以下实操建议先核对 Node 版本再升级大版本若当前运行在 Node 18应停留在 5.1.x 或明确接受尽力支持的降级状态升级到 v6.0.0 及以上前请将运行时迁移到 Node 22。把run the generator视为例行同步此类版本v5.0.0、v5.1.0、v6.0.0、v8.0.0通常伴随上游 API 的字段级变化升级后建议用仓库中的 src/apis/sql/v1beta4.ts 类型声明与本项目实际使用的字段做一次 diff 检查。善用settingsVersion处理并发更新调用instances.patch/update时携带最新settingsVersion避免并发修改互相覆盖字段语义见 src/apis/sql/v1beta4.ts。跟踪后续变更本仓库只读后续版本更新可通过npm install googleapis/sql获取并在本地 node_modules 中查阅最新 CHANGELOG仓库内的 src/apis/sql/CHANGELOG.md 则始终保留当前快照对应的完整历史可作为升级评估的权威依据。赞分享后端【免费下载链接】google-api-nodejs-clientGoogles officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included.项目地址https://gitcode.com/gh_mirrors/go/google-api-nodejs-client点击查看免费下载相关推荐Thorium用 SIMD 编译把浏览器速度重新算一遍的 Chromium 分支Thorium用 SIMD 编译把浏览器速度重新算一遍的 Chromium 分支 Thorium 是一个面向开发者和性能党用户的开源 Chromium 分支后端Cherry Studio 消息头 Author-First 改造消息作者快照MessageSnapshot机制深度解析Cherry Studio 消息头 Author First 改造消息作者快照MessageSnapshot机制深度解析 本指南基于 CherryHQ/c后端googleapis/parallelstore 版本演进全解析从 0.1.0 到 11.0.1 的变更脉络、Node 门槛与 API 能力googleapis/parallelstore 版本演进全解析从 0.1.0 到 11.0.1 的变更脉络、Node 门槛与 API 能力 本指南以 go后端上一篇HsMod炉石插件新手教程从换肤到酒馆战棋上分的60功能指南下一篇Firebase JS SDKfirebase/aiGenerateContentCandidate 接口详解候选回复的结构、字段语义与源码级处理机制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站