grpc_service - GStones/moke-kit GitHub Wiki
本文档介绍了如何实现Grpc服务,以及如何使用这些服务。
在service.go 中实现对应的接口,moke-kit会自动把相关接口注册到Grpc服务中。
func (s *Service) RegisterWithGrpcServer(server siface.IGrpcServer) error {
pb.RegisterDemoServiceServer(server.GrpcServer(), s)
return nil
}
把Grpc服务封装为一个ParamsObject
类型的对象 GrpcService。
var GrpcService = fx.Provide(
func(
// dependent other ParamsObjects
...,
) (out sfx.GrpcServiceResult, err error) {
return NewGrpcService(service), nil
},
)
组合GrpcService
和它内部依赖的ParamsObject
为一个GrpcModule。
var GrpcModule = fx.Module("grpcService",
// other modules
...,
demo.GrpcService,
)
实现一个Main函数,并注入GrpcModule
,然后运行,服务监听本机:8081
端口。
fxmain.Main(
module.GrpcModule,
)
moke-kit
自带交互式命令行测试工具,你可以通过编译./cmd/demo/client/main.go
来生成一个交互式客户端。
go build -o client.exe ./cmd/demo/client/main.go
# 运行客户端,连接`localhost:8081`服务
./client.exe grpc --host localhost:8081
# help 查看命令帮助
- Install buf
- 把相关proto文件放到
./api
目录下面 - 运
buf generate
会在./api/gen/
目录下生成对应的go文件,如果有配置http tags, 会在./third_party
目录下生成对应的swagger.json
文件。 - 你可以通过配置
buf
的相关配置文件去控制如何生成proto
文件。详细文档