文件结构

gRPC APIs应使用proto3 IDL定义在.proto文件中。

文件结构应该将更高层级和更重要的定义放在其它项目之前。在每个proto文件中,每个适用的部分应该遵循以下顺序:

  • 版权和许可证提示,如果需要。

  • Proto的syntaxpackageoptionimport语句,顺序分先后。

  • API概述文档以供读者为阅读文件剩余内容做好准备。

  • API proto的service定义,按其重要性降序排列。

  • 用于RPC请求和响应的message定义,遵照与对应方法一致的顺序。若有请求消息,则其必须在它对应的响应消息之前。

  • 资源message定义。父资源的定义必须在子资源之前。

若一个proto文件包含了完整的API接口,则它应该以该API来命名:

API

Proto

Library

library.proto

Calendar

calendar.proto

大型.proto文件可以被分成多个文件。服务、资源信息、请求/响应消息应该按需被放到不同的文件里。

我们建议将同一个服务的请求和响应放在同一个文件里。可以考虑将该文件命名为<enclosed service name>.proto。对只包含资源的proto文件,可以考虑将其命名为resources.proto

Proto文件名

proto文件名应该使用lower_case_underscore_separated_names并且必须使用.proto的扩展名。举个例子:service_controller.proto。

Proto可选项

为了能跨APIs生成一致的的客户端库,API开发者必须在他们的.proto文件中使用一致的proto可选项。遵循本份指南的API定义必须使用以下文件级别的proto可选项:

Last updated