- 后端
【免费下载链接】google-api-nodejs-client
Google's 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.
导读
@googleapis/walletobjects是 Google 官方 Node.js 客户端库(google-api-nodejs-client)中负责 Google Wallet(Wallet Objects API)的子包,用于让发卡方(issuer)保存和管理各类 Google Wallet 对象(登机牌、活动门票、会员卡、礼品卡、优惠券、公交卡等)。本文以仓库内 src/apis/walletobjects/CHANGELOG.md 的版本记录为骨架,结合 package.json、index.ts 与 v1.ts 源码,系统梳理该包 2024 年 1 月发布至今的版本演进脉络、Breaking Changes 类型、Node.js 运行时要求的变化过程,并给出可落地的升级与迁移检查清单。读完本文,你将掌握该包的发布节奏与维护机制,能准确判断升级到最新版本前需要处理哪些破坏性变更。
一、版本演进总览:两年多时间里的 37 个版本
@googleapis/walletobjects于 2024-01-03 以 0.1.0 首次发布,截至 2026-09-23 已演进到 18.0.1,期间共发布约 37 个版本。该 CHANGELOG 由 release-please 自动生成,格式遵循 Conventional Commits:每个版本都明确区分Features(新特性)与Bug Fixes(缺陷修复),凡属破坏性变更的版本会被单独标注⚠ BREAKING CHANGES。
按时间线看,其发布呈现明显的"小版本高频迭代 + 大版本定期刷新"特征:
| 版本 | 日期 | 关键变更类型 |
|---|---|---|
| 0.1.0 | 2024-01-03 | 首次发布,update the API |
| 0.2.0 / 1.0.0 | 2024-02 | 首次大版本,进入稳定期 |
| 2.0.0 / 3.0.0 | 2024-03 ~ 04 | run the generator,break(破坏性)更新 |
| 3.0.1 ~ 6.3.0 | 2024-05 ~ 2025-03 | 以 update the API 为主,间杂 generator 刷新 |
| 7.0.0 | 2025-05-29 | upgrade to node 18(破坏性) |
| 8.0.0 | 2025-06-30 | 再次确认 upgrade to node 18(破坏性) |
| 8.0.1 ~ 11.2.0 | 2025-07 ~ 2026-01 | update the API 高频迭代 |
| 12.0.0 ~ 14.1.0 | 2026-05 ~ 08 | generator 刷新 + update the API |
| 15.0.0 / 16.0.0 / 17.0.0 | 2026-09-09 ~ 10 | Node 22 要求与 node 18 回退的反复 |
| 18.0.0 | 2026-09-14 | 再次提升最低 Node 版本到 22(破坏性) |
| 18.0.1 | 2026-09-23 | 最新版,update the API |
从中可以读出两条规律:一是绝大多数Features条目来自walletobjects API 的周期性更新(对应条目为**walletobjects:** update the API),反映 Google Wallet 后端接口本身在持续演进;二是所有跨大版本的破坏性变更几乎都来自Node.js 最低运行版本要求的提升与代码生成器(generator)的重新运行。这两点将在下文分别展开。
二、Breaking Changes 核心:Node.js 运行时要求的演进
CHANGELOG 中记录的破坏性变更,最值得开发者关注的是 Node.js 最低版本要求。梳理其完整脉络:
- 2025-05-29,7.0.0:
upgrade to node 18,最低 Node 版本提升至 18,标注为 Breaking Changes; - 2025-06-30,8.0.0:再次以
upgrade to node 18确认该要求,并伴随googleapis-common依赖调整; - 2026-09-09 ~ 09-10,15.0.0 / 16.0.0 / 17.0.0:先后引入
Update apiary to minimum Node version of 22(破坏性变更),但同时以 Bug Fixes 形式add back support for node 18,说明这一阶段存在"先提升到 22、再临时回退兼容 18"的发布反复; - 2026-09-14,18.0.0:最终确定
Update apiary to minimum Node version of 22 again - all packages,即全仓库所有子包统一要求 Node >= 22,这是 18.0.0 的 Breaking Changes 来源; - 2026-09-23,18.0.1:仅更新 walletobjects API,不再涉及运行时要求。
该结论在仓库源码中得到直接印证:当前 src/apis/walletobjects/package.json 的engines字段为"node": ">=22.0.0",与 18.0.0 的破坏性变更完全一致;版本号亦为18.0.1。也就是说,截至本文所依据的仓库快照,使用该包必须运行 Node.js 22 及以上版本。
对升级者的实际影响:若你的生产环境仍停留在 Node 18,从 15.x 之前的版本升级到 18.0.x 属于破坏性变更,必须先完成 Node 运行时升级;反之,若停留在 17.0.0 等中间版本,虽然该阶段短暂恢复了 Node 18 支持,但并非长期承诺,应以最终发布的 18.0.x 为准。部署前请务必检查node -v是否满足>=22.0.0。
三、生成器驱动的维护机制:run the generator 与 update the API
CHANGELOG 中反复出现两类高频条目,理解它们有助于判断每次升级的实际风险:
run the generator:本仓库的全部 API 客户端代码(包括src/apis/walletobjects/目录下的 index.ts 与 v1.ts)均由代码生成器基于 Google Discovery 文档自动生成。每当生成器模板或 Discovery 文档刷新,就会触发一次run the generator,产物以 commit 形式落库并触发新版本。这类变更可能同时带来类型定义、参数结构甚至方法签名的调整,因而通常与 Breaking Changes 绑定出现。**walletobjects:** update the API:专指 Wallet Objects API 的 Discovery 文档更新(如新增字段、Schema、端点),经生成器重新生成后同步进客户端库。这类更新通常是纯增量,风险较低,但也不排除字段语义变化。
从源码结构可以验证这一生成机制的产物形态:v1.ts 顶部明确标注THIS FILE IS AUTO-GENERATED,其中通过walletobjects_v1命名空间导出一个Walletobjects主类,并在构造函数中挂载了 20 个资源(Resource)实例:
- 对象类资源:
eventticketclass、eventticketobject、flightclass、flightobject、genericclass、genericobject、giftcardclass、giftcardobject、loyaltyclass、loyaltyobject、offerclass、offerobject、transitclass、transitobject; - 管理与能力类资源:
issuer、jwt、media、permissions、smarttap、walletobjects(后者还嵌套了v1.privateContent子资源)。
每个资源类均提供标准 CRUD 方法族:get、insert、list、patch、update,部分还包含addmessage(向对象追加消息)、modifylinkedofferobjects(修改关联优惠对象)、download/upload(公交对象旋转条形码值的下载与上传)等专属方法。每次update the API都可能新增 Schema 或方法,因此升级后建议通过 TypeScript 类型检查(npm run compile)及时发现调用处是否需要适配。
四、依赖链演进:googleapis-common 的同步升级
除 API 本体更新外,CHANGELOG 还记录了底层依赖googleapis-common的多轮升级,例如:
- 8.0.0(2025-09-16)与 8.0.2(2025-08-07)条目中的
upgrade googleapis-common to 8.0.0/to 8.0.2-rc; - 8.0.1、8.1.0(2025-07-08 前后)中的
**walletobjects:** update the API修复。
googleapis-common提供了getAPI、createAPIRequest、AuthPlus、GoogleConfigurable等核心基础设施。以 index.ts 为例,包的入口函数正是通过getAPI<T>('walletobjects', versionOrOptions, VERSIONS, this)完成客户端实例化,VERSIONS对象将v1映射到walletobjects_v1.Walletobjects。当前 package.json 声明依赖"googleapis-common": "^9.0.0",且types指向build/index.d.ts、main指向build/index.js,即安装后需经npm run compile(tsc -p .)产出构建产物。
对升级者的提示:由于googleapis-common与 API 子包共用同一发布节奏(Node 版本要求一并提升),升级@googleapis/walletobjects时应同步升级googleapis主包或直接安装独立子包@googleapis/walletobjects,避免底层版本错位。
五、从源码确认当前版本的全貌
将 CHANGELOG 最新条目与仓库源码对照,可确认当前状态:
- 版本与运行时:package.json 记录版本
18.0.1、engines.node >= 22.0.0、依赖googleapis-common ^9.0.0,与 18.0.0/18.0.1 的变更一致; - 安装方式:README.md 给出标准安装命令
npm install @googleapis/walletobjects,并说明该包定位于 "API for issuers to save and manage Google Wallet Objects"; - 接入方式:v1.ts 的类注释提供了最小调用示例——
const {google} = require('googleapis'); const walletobjects = google.walletobjects('v1');,随后即可通过walletobjects.issuer.get()、walletobjects.jwt.insert()、walletobjects.eventticketclass.insert()等调用具体接口; - 鉴权要求:各方法示例统一使用
google.auth.GoogleAuth并声明 OAuth Scopehttps://www.googleapis.com/auth/wallet_object.issuer(也可在 v1.ts 的StandardParameters中看到auth支持 OAuth2Client、JWT、Compute、UserRefreshClient、API Key 等多种方式),调用前需通过gcloud auth application-default login完成应用默认凭证登录; - 生态集成:该子包已通过 src/apis/index.ts 统一导出(
walletobjects、walletobjectsVersions),因此在安装完整googleapis主包时同样可用。
六、升级与迁移检查清单
综合 CHANGELOG 与源码,升级@googleapis/walletobjects前建议按以下顺序自检:
- 运行时检查:确认 Node.js 版本
>= 22.0.0(node -v);若当前环境为 Node 18,请先升级运行时,这是 18.0.0 明确的破坏性前提; - 依赖一致性:确认
googleapis-common版本与客户端库匹配(当前要求^9.0.0),并保持与主包googleapis的版本协调; - 类型适配:执行
npm run compile(或tsc)以 TypeScript 类型为基准,检查因update the API/run the generator带来的 Schema 字段与方法签名变化,重点审查insert/patch/update的请求体结构; - 鉴权确认:确认请求仍以
wallet_object.issuerScope 或等效凭证发起,避免因 Scope 变更导致 403; - 功能回归:Wallet Objects API 支持的活动门票、航班、会员、礼品卡、优惠券、公交等对象类型在 v1.ts 中均有对应资源类,升级后建议对实际使用的对象类型各做一次
get或list冒烟测试,并验证jwt.insert(JWT 插入资源)与media.download/media.upload(公交旋转条形码)等专项能力是否正常。
七、小结
@googleapis/walletobjects的 CHANGELOG 记录了 Google Wallet 客户端库从 0.1.0 到 18.0.1 的完整演进:版本迭代主要受"walletobjects API 更新"与"代码生成器刷新"驱动;破坏性变更的焦点始终是 Node.js 最低版本要求(最终定格为 Node 22)与生成产物同步;googleapis-common作为底层基础设施随版本同步升级。对于使用者而言,把握这条演进主线,配合 package.json、index.ts、v1.ts 等源码进行类型与鉴权自检,即可在享受 Google Wallet 最新能力的同时,平稳完成每一次大版本升级。
- 后端
【免费下载链接】google-api-nodejs-client
Google's 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.
相关推荐
@googleapis/oracledatabase 版本演进与变更全解析:从 0.1.0 到 14.0.1 的 Node.js 客户端升级指南
@googleapis/oracledatabase 版本演进与变更全解析:从 0.1.0 到 14.0.1 的 Node.js 客户端升级指南 导读 goog
后端google-api-nodejs-client chromepolicy 子包演进全解析:从 0.1.0 到 18.0.1 的版本变更指南
google api nodejs client chromepolicy 子包演进全解析:从 0.1.0 到 18.0.1 的版本变更指南 本文以 src/a
后端@googleapis/searchconsole 版本演进与升级指南:Search Console API 的 Node.js 客户端全解析
@googleapis/searchconsole 版本演进与升级指南:Search Console API 的 Node.js 客户端全解析 导读 @goog
后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考