如何在 Apinto 实现 HTTP 与gRPC 的协议转换 (下) - 小Kit
source link: https://www.cnblogs.com/apibest/p/17226854.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
上文给大家详细介绍了在 Apinto 上实现 HTTP
与 gRPC
的协议转换的基本内容,本篇我们将继续讲解如何在 Apinto-Dashboard 中进行配置。
配置 Apinto
Apinto 上我们提供了可视化界面工具 Apinto-Dashboard,以降低初学者的使用成本,以下操作均在 Apinto-Dashboard 中进行配置。
1. 在全局插件中新建 http_to_grpc 插件
2. 创建 gRPC 服务
在这里,我们配置 gRPC
服务的相关信息,我们可以配置多个静态负载地址,这里我们填写了 127.0.0.1:9001。
3.创建 http 路由,绑定 grpc_demo 上游服务
4. 在路由中绑定 http_to_grpc 插件
由于 gRPC
服务端示例中,我们开启了gRPC
反射,因此,在配置插件时,开启反射按钮即可
注:
-
当服务名称不填时,则默认使用
HTTP
请求路径的第一个/
和第二个/
之间的值作为服务名; -
当方法名称不填时,则默认使用
HTTP
请求路径的第二个 / 和第三个 / 之间的值作为服务名;
·即,若HTTP
请求路径上/Service.Hello/Hello
,则此时服务名称为Service.Hello
,方法名称为Hello
。
关于 Protobuf 编码器
若 gRPC
未开启反射,我们需要先新建一个Protobuf
编码器,绑定 http_to_grpc
插件时,绑定对应的编码器 ID
即可,详细步骤如下:
1. 创建 Protobuf 编码器
2. 在路由中绑定 http_to_grpc 插件
填写完后提交即可。
验证协议转换请求
1. 启动 gRPC 服务器
2.请求 Service.Hello 服务的 Hello 方法
在上文中,我们定义了 Hello 方法的功能:
-
将
HelloRequest
中的name
字段通过HelloResponse
的msg
字段封装成hello,%s
的结果返回; -
将请求的 Header 作为 gRPC 响应的 Trailer 头部返回。
调用结果如下:
欢迎到 GitHub 体验 👉:https://github.com/eolinker/apinto
目前 Apinto 及其周边项目已经开源,我们希望通过 Apinto 强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展 Apinto 的插件,以满足不同的业务市场需求。
Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的 Traffic Middleware。
这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。 每一个贡献都是有意义的,包括但不限于:
- 查找 bugs,取得性能上的提升
- 帮助完善文档,提供用户操作体验
- 提交你们的 issue,让我们知道您的奇思妙想
- 参与自定义插件的开发,丰富 apinto 的能力
欢迎各位开源爱好者参与到 Apinto 项目中,和我们一起为开源事业贡献自己的力量!
我们希望得到您的关注~
👉 Github : https://github.com/eolinker/apinto
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK