Skip to content

http_service

guolei edited this page Jun 7, 2024 · 6 revisions

本文档介绍了如何实现Http服务,以及如何使用服务

先决条件

需要快速创建自己的moke-kit项目

1. 实现对应Http的接口类Service.

service.go 中实现对应Http的接口,moke-kit会自动添加grpc-gateway服务,以中转Http请求到Grpc服务中。

func (s *Service) RegisterWithGatewayServer(server siface.IGatewayServer) error {
    return pb.RegisterDemoServiceHandlerFromEndpoint(
                context.Background(),
                server.GatewayRuntimeMux(),
                server.Endpoint(),
                server.GatewayOption(),
            )
}

如何在proto文件中定义Http ?

快速使用可以参考协议,执行buf generate 生成对应的代码。前提需要安装buf

2. 封装Http服务 HttpService.

封装Http服务为一个ParamsObject 类型的对象 HttpService

3. 模块化Http服务 HttpModule.

组合HttpService 和它内部依赖的ParamsObject 对象为一个HttpModule。

注意:HttpModule 依赖于GrpcService,所以在HttpModule 中需要注入GrpcService为什么依赖?

4. 使用HttpModule.

实现一个Main函数,并注入HttpModule ,然后运行,Http服务跟Grpc服务同时监听本机:8081端口。

5. 访问 HttpService

当运行buf generate 后, 会在./third_party中生成*.swagger.json文件,可以通过插件或者在线编辑器去测试指定的http接口协议。