问题描述
对于资源名称,找到合适的HTTP Rest URL。
借助下面的Google文档,对于某些资源,名称到URL的映射工作正常
示例:
- 名称格式: //cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_NUMBER
- URL: https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_NUMBER
基本上在名称之前添加HTTPS方案,在资源路径之前添加API主版本,这可以正常工作。
但是问题是,如果我们使用这种方法形成URL,则该转换方案对于某些资源而言并不一致,
示例:
- 名称格式://compute.googleapis.com/projects/PROJECT_ID /
- 形成的网址:https://compute.googleapis.com/v1/projects/PROJECT_ID/
- Google文档中的网址:https://compute.googleapis.com/**compute**/v1/projects
Compute Engine API参考:https://cloud.google.com/compute/docs/reference/rest/v1
除计算外,其他资源实际上也具有与使用上述方法生成的资源不同的URL。
查询是:
- 除了上述提到的方法外,还没有其他方法可以将资源名称映射到URL
- 这种转换的最佳做法是什么
- 除了手动将每个名称映射到URL之外,还有其他通用方法
- 是否有提供此映射的API,例如pass,将返回它的资源名称和URL(在互联网上我找不到一个)
解决方法
Google API具有discovery document。
在该JSON文件中,该问题涉及两个字段:rootUrl
和servicePath
。
要为API构建适当的URL,请同时连接两个值。
discovery service docs中的更多详细信息。