Contents

golang-go-zero-微服务实践-给rpc服务提供http接口

go-zero官网

go-zero详细文档

本系列为作者阅读公众号微服务实践的文章做的笔记

另外go-zero作者kevwan大佬的learnku博客也是同步更新的

原文地址

提供rpc接口

按rpc开发流程构建rpc服务,一键生成。

编写logic实现相关功能

提供http接口

proto文件

新建一个proto(推荐)或者修改原来的proto。如果原来的proto为sum.proto你可以新建一个和sum-api.proto,在原来proto的基础上添加下面这一行

1
import "google/api/annotations.proto";

生成proto descriptor文件

1
protoc --include_imports --proto_path=. --descriptor_set_out=sum.pb sum-api.proto

修改internal/config/config.go和yaml

config.go

1
2
3
4
type Config struct {
    zrpc.RpcServerConf
    Gateway gateway.GatewayConf
}

yaml

1
2
3
4
5
6
7
8
Gateway:
  Name: gateway
  Port: 8081
  Upstreams:
    - Grpc:
        Endpoints:
          - localhost:8080
      ProtoSet: sum.pb

修改main

1
2
3
4
5
6
7
8
9
gw := gateway.MustNewServer(c.Gateway)
group := service.NewServiceGroup()
group.Add(s)
group.Add(gw)
defer group.Stop()

fmt.Printf("Starting rpc server at %s...\n", c.ListenOn)
fmt.Printf("Starting gateway at %s:%d...\n", c.Gateway.Host, c.Gateway.Port)
group.Start()

相应的http请求都是post,数据放到json结构体

 |