API 服务通常使用 .proto 文件来定义 API 接口,并使用 .yaml 文件来配置 API 服务。每个 API 服务必须在 API 代码库中有一个 API 目录。API 目录应该包含所有 API 定义文件和构建脚本。
每个 API 目录应该具有以下标准布局:
API 目录
代码库必要条件
BUILD:构建文件。METADATA:构建元数据文件。OWNERS:API 目录所有者。README.md:有关 API 服务的常规信息。
配置文件
{service}.yaml:基准服务配置文件,google.api.Serviceproto 消息的 YAML 表示法。prod.yaml:生产环境增量服务配置文件。staging.yaml:模拟环境增量服务配置文件。test.yaml:测试环境增量服务配置文件。local.yaml:本地环境增量服务配置文件。
文档文件
doc/*:技术文档文件。它们应采用 Markdown 格式。
接口定义
v[0-9]*/*:每个这样的目录都包含 API 的主要版本,主要是 proto 文件和构建脚本。{subapi}/v[0-9]*/*:每个{subapi}目录都包含子 API 的接口定义。每个子 API 可以有自己的独立主要版本。type/*:proto 文件,包含在不同 API 之间、同一 API 的不同版本之间或 API 与服务实现之间共享的类型。type/*下的类型定义一旦发布就不应该有破坏性更改。
公共 Google API 定义在 GitHub 上发布,请参阅 Google API 代码库。