gRPC API 应该(should) 使用 proto3 在 .proto
文件中定义。
文件中 必须(must) 将高层级和更重要的定义放在其他项目之前。原型文件 应该(should) 参照下面的顺序:
- 版权和许可协议(如果需要)
- 按照
syntax
,package
,option
和import
的顺序写的原型 - API 概述文档
- 以引入顺序降序排列的
service
定义 - 资源
message
定义,父资源 必须(must) 在子资源之前定义 - RPC 请求和响应的
message
定义,与对应方法的顺序相同。每个请求信息 必须(must) 在对应响应信息之前(如果有的话)
如果一个原型文件包含了所有的 API,那么它应该以 API 名字命名:
API | Proto |
---|---|
Library | library.proto |
Calendar | calendar.proto |
如果需要的话,可以将一个大 .proto 文件中的服务、资源消息、请求/响应消息移动到单独的文件中。
推荐在单独的文件中保存单独的服务和对应的请求响应消息,将文件命名为 <enclosed service name>.proto
。对于只有资源的原型文件,可将它命名为 resources.proto
。
proto 文件名
proto 文件 应该(should) 以小写字母下划线分隔的名字命名,并且 一定(must) 要使用 .proto
做为后缀。例如:service_controller.proto
。
proto option
为了在不同 API 中生成一致的客户端库,API 开发者 必须(must) 在 .proto
文件中使用一致的 proto option。参照本指南的 API 定义 必须(must) 使用如下的 option:
1 | syntax = "proto3"; |