介绍
本文将介绍如何让一个 gRPC 服务,同时提供 gRPC 和 Restful API。
- 为了能让 gRPC 提供 REST API,我们需要使用 grpc-gateway
请访问如下地址获取完整教程:
- https://rkdev.info/cn
- https://rkdocs.netlify.app/cn (备用)
使用 rk-boot
rk-boot 是集成了 Gin, gRPC 和一系列流行 Go 语言框架的启动器,用户可以通过 rk-boot 快速启动企业级 Go 语言微服务。
先决条件
使用过 GRPC 的用户都应该知道,protocol buffer 文件需要使用相关的命令行,把 *.proto 文件编译成 *.go 文件。
根据不同需要,会使用到不同的命令行文件。以 Go 语言为例,我们需要大致如下几个命令行文件。
工具 | 介绍 | 安装 |
---|---|---|
protobuf | protocol buffer 编译所需的命令行 | Install |
protoc-gen-go | 从 proto 文件,生成 .go 文件 | Install |
protoc-gen-go-grpc | 从 proto 文件,生成 GRPC 相关的 .go 文件 | Install |
protoc-gen-grpc-gateway | 从 proto 文件,生成 grpc-gateway 相关的 .go 文件 | Install |
protoc-gen-openapiv2 | 从 proto 文件,生成 swagger 界面所需的参数文件 | Install |
除了安装上述命令行,我们还需要根据需要,运行至少4种不同命令来编译 *.proto 文件,非常晦涩难懂。
具体操作方式可参考我的前一篇文章:【GRPC: 使用 Buf 快速编译 GRPC proto 文件】
或者访问:【https://rkdev.info/cn/docs/bootstrapper/user-guide/grpc-golang/basic/grpc-gateway/】
安装
go get github.com/rookie-ninja/rk-boot
快速开始
1.创建 api/v1/greeter.proto
synt