目录结构

典型的 API 目录包含定义 API 表面的 .proto 文件和配置 API 服务的 .yaml 文件。使用此布局有助于您在不同环境中保持一致的服务配置和版本化接口。每个 API 服务必须在 API 代码库中有一个 API 目录,并且该 API 目录应包含所有 API 定义文件和 build 脚本。

每个 API 目录应该具有以下标准布局:

  • API 目录

    • 代码库必要条件

      • BUILD:构建文件。
      • METADATA:构建元数据文件。
      • OWNERS:API 目录所有者。
      • README.md:有关 API 服务的常规信息。
    • 配置文件

      • {service}.yaml:基准服务配置文件,google.api.Service proto 消息的 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 代码库。