@@ -37,24 +37,25 @@ sidebar_position: 6
3737
3838### 编写 proto 文件
3939
40- - 首先根据业务需求,定义一个新的模块。本文以 ` hello ` 为例,创建对应的 module 文件夹和 proto 文件,如 ` hello/hello .proto` 。
41- - 编写 proto 文件,定义新的接口方法 ,如:
40+ - 首先根据业务需求,定义一个新的功能。本文以在 Friend 模块添加一个 ` AddFriendCategory ` 为例,我们需要在 Friend 模块的 proto 文件,添加对应的功能,文件在 ` relation/relation .proto` 。
41+ - 编写 proto 文件,定义新的 ` AddFriendCategory ` 接口方法 ,如:
4242
4343``` proto
4444syntax = "proto3";
4545
46- package openim.hello ;
46+ package openim.relation ;
4747
4848// 定义生成的 go 语言包名,通常为 github.com/openimsdk/protocol/<module>,其中 module 为具体的模块名称。
49- option go_package = "github.com/openimsdk/protocol/hello ";
49+ option go_package = "github.com/openimsdk/protocol/relation ";
5050
51- // 定义 Hello 的请求参数
52- message HelloRequest {
53- string name = 1;
51+ // 定义 AddFriendCategory 的请求参数
52+ message AddFriendCategoryRequest {
53+ string userID = 1;
54+ string categoryName = 2;
5455}
5556
56- // 定义 Hello 的响应参数
57- message HelloResponse {
57+ // 定义 AddFriendCategory 的响应参数
58+ message AddFriendCategoryResponse {
5859 string message = 1;
5960 UserInfo user = 2; // 引用自定义的 message 结构
6061}
@@ -65,17 +66,17 @@ message UserInfo {
6566 int32 age = 2;
6667}
6768
68- // 定义一个 Hello 模块的 RPC 服务
69- service HelloService {
70- // 定义一个 SayHello 的 RPC 方法
71- rpc SayHello(HelloRequest ) returns (HelloResponse );
69+ // 定义一个 Friend 模块的 RPC 服务
70+ service Friend {
71+ // 定义一个 AddFriendCategory 的 RPC 方法
72+ rpc AddFriendCategory(AddFriendCategoryRequest ) returns (AddFriendCategoryResponse );
7273}
7374```
7475
75- 这里面分别定义了一个请求参数 ` HelloRequest ` ,一个响应参数 ` HelloResponse ` ,一个自定义的结构体 ` UserInfo ` ,以及一个 RPC 服务 ` HelloService ` ,其中包含的 RPC 方法 ` SayHello ` 。
76+ 这里面分别定义了一个请求参数 ` AddFriendCategoryRequest ` ,一个响应参数 ` AddFriendCategoryResponse ` ,一个自定义的结构体 ` UserInfo ` ,以及一个 RPC 服务 ` Friend ` ,其中包含的 RPC 方法 ` AddFriendCategory ` 。
7677
7778上面这个主要的关注点为:
78- 定义生成的 go_package 路径 -> 定义 RPC 方法的请求和响应 message 结构,如果有需要定义的通用结构可以单独定义 message 结构(如 ` UserInfo ` )-> 定义 RPC 服务和方法。
79+ 定义 RPC 方法的请求和响应 message 结构,如果有需要定义的通用结构可以单独定义 message 结构(如 ` UserInfo ` )-> 定义 RPC 服务和方法。
7980
8081### 生成 Go 代码
8182
0 commit comments