Protobuf 介绍与实战46:protoc-gen-go-https插件介绍

已发表的技术专栏
0  grpc-go、protobuf、multus-cni 技术专栏 总入口

1  grpc-go 源码剖析与实战  文章目录

2  Protobuf介绍与实战 图文专栏  文章目录

3  multus-cni   文章目录(k8s多网络实现方案)

4  grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录

1、protoc-gen-go-https插件源码下载

此插件是从https://github.com/gotomicro/ego框架里抽取了的prototobuf插件用例;

源码已经上传到百度网盘了。

链接: https://pan.baidu.com/s/1RNDYSmX38xFc_O7iDeGdcw 提取码: t3w6

Protobuf 介绍与实战46:protoc-gen-go-https插件介绍_第1张图片

2、该插件的目的

该插件是通过proto来生成相应的web接口。

底层是将rpc接口封装成web接口,提供服务。

3、测试样例greeter.proto、以及生成的xxx_http.pb.go样例

Protobuf 介绍与实战46:protoc-gen-go-https插件介绍_第2张图片

从图片中,可以看出来,至少有3方面的要求:

  • proto文件里必须含有service模块
  • 导入依赖
  • 需要在proto文件里的service模块里设置http语法规则

最终想要的xxx_http.pb.go文件,如下图所示:

Protobuf 介绍与实战46:protoc-gen-go-https插件介绍_第3张图片

4、google/api/annotations.proto 依赖文件说明

相关依赖文件下载地址
https://github.com/googleapis/googleapis
并且,已经上传到了百度网盘,以及测试工程里了

已经上传到百度网盘
链接: https://pan.baidu.com/s/1RNDYSmX38xFc_O7iDeGdcw 提取码: t3w6

下载后,如何存放到合适的位置?

4.1、方式一:直接存储到protobuf软件的安装目录下

如:
Protobuf 介绍与实战46:protoc-gen-go-https插件介绍_第4张图片

protobuf软件原生自带的是protobuf目录,其他目录都是将下载后的文件,拷贝过来的

提供的测试工程里,也自带了。
Protobuf 介绍与实战46:protoc-gen-go-https插件介绍_第5张图片

可下载查看

存储到protobuf安装目录下的好处是,编译proto文件时,不需要再添加-I参数指明路径了。

4.2、方式二:可根据自己的实际情况存放到某个路径下

只是,在编译时,需要使用-I 来指明路径;

假设,将google/api存储到protoc-gen-go-http目录的dep目录下
Protobuf 介绍与实战46:protoc-gen-go-https插件介绍_第6张图片

5、google.api.http语法规则

可以参考下面的文章

https://blog.csdn.net/xiaojia1100/article/details/79447283

6、proto-gen-go-https源码说明

具体源码,就不再看了。

实现流程跟protoc-gen-go-errors非常类似。

下一篇文章

  protoc-gen-go-test 插件介绍(proto样例介绍,源码介绍)

你可能感兴趣的:(grpc-go,protobuf,golang,kubernetes,docker)