使用 API 时,如果需要获取对 proto 类的引用,您要么需要对 API 有深入的了解,要么需要经常查找 proto 参考文档以获取确切的命名空间路径。
ProtoLookupUtil
GoogleAdsClient(由 Factory 和 ServiceLookup 提供支持,取代了旧版 ProtoLookupUtil 类)上的查找实用程序方法可让您查找和创建服务、操作、枚举和资源实例,而无需跟踪 API 版本号和模块命名空间。默认情况下,这些方法会使用已安装 gem 支持的最高 API 版本(最新版本为 V25,其中次要 API 版本(例如 v25.1)使用其主要版本模块 V25),或者您可以在查找调用中指定明确的版本前缀(例如 v25)。
如果不使用查找实用程序,您可以直接从广告系列的已版本化命名空间实例化广告系列资源:
campaign =
Google::Ads::GoogleAds::V25::Resources::Campaign.new
借助客户端查找方法,您可以直接从客户端实例化资源:
campaign = client.resource.campaign
在提取资源、服务或操作时,系统会返回相应实体的实例:
# Instantiate an operation
operation = client.operation.campaign
服务查找
使用 client.service 方法来提取服务客户端,即使您不将此实用程序用于其他实体也是如此。client.service 会自动在返回的服务客户端上配置您的身份验证凭据和传输设置:
campaign_service = client.service.campaign
枚举查找
对于 protobuf 消息中的枚举字段,请直接分配 Ruby 符号,而不是查找枚举模块:
campaign.status = :PAUSED
如需在运行时检查或迭代枚举的所有有效符号,请使用 client.enum,该方法会返回相应枚举的 Google::Protobuf::EnumDescriptor:
status_enum = client.enum.campaign_status
status_enum.each { |status| p status }