pbgo 基于 Protobuf 定义接口规范,通过pbgo提供的插件生成RPC和REST相关代码。
创建hello.proto文件,定义接口规范:
syntax = "proto3"; package hello_pb; import "github.com/chai2010/pbgo/pbgo.proto"; message String { string value = 1; } service EchoService { rpc Echo (String) returns (String) { option (pbgo.rest_api) = { get: "/echo/:value" }; } }
用pbgo插件生成代码:
$ protoc -I=. -I=$(GOPATH)/src --pbgo_out=. hello.proto
创建REST服务:
type EchoService struct{} func (p *EchoService) Echo(request *hello_pb.String, reply *hello_pb.String) error { *reply = *request return nil } func main() { router := hello_pb.EchoServiceHandler(new(EchoService)) log.Fatal(http.ListenAndServe(":8080", router)) }
测试REST服务:
$ curl localhost:8080/echo/gopher {"value":"gopher"} $ curl localhost:8080/echo/gopher?value=cgo {"value":"cgo"}
详细的例子请参考:https://github.com/chai2010/pbgo/blob/master/examples/hello.p
pbgo是我们专门针对本节内容设计的较为完整的迷你框架,它基于Protobuf的扩展语法,通过插件自动生成rpc和rest相关代码。在本章第二节我们已经展示过如何定制一个Protobuf代码生成插件,并生成了rpc部分的代码。在本节我们将重点讲述pbgo中和Protobuf扩展语法相关的rest部分的工作原理。 4.7.1 Protobuf扩展语法 目前Protobuf相关的很多开源项目都使用到了
protobuf-rpc-pro 是一个Java类库,提供了基于 Google 的 Protocol Buffers 协议的远程方法调用的框架。基于 Netty 底层的 NIO 技术。支持 TCP 重用/ keep-alive、SSL加密、RPC 调用取消操作、嵌入式日志等功能。
Groovy 让元对象协议从实验室走进应用程序 将耳朵贴到地上仔细听 —— MOP 正在前进!了解一下元对象协议(Meta Object Protocol,MOP)吧,这是一种将应用程序、语言和应用程序构建 为语言的翻新方法。 在最近的一次采访中,Groovy 项目经理 Guillaume Laforge 提到,他最喜欢的 Groovy 特性是它实现了 元对象协议(Meta Object Prot
学习编程,重要的是什么?多练、多看、多实践!跨语言学习,掌握基础语法和语言的特性之后,实战,效率来的最快!——khlipeng RPC是远程过程调用的缩写(Remote Procedure Call),通俗地说就是调用远处的一个函数。远处到底有多远呢?可能是同一个文件内的不同函数,也可能是同一个机器的另一个进程的函数,还可能是远在火星好奇号上面的某个秘密方法。因为RPC涉及的函数可能非常之远,远到
我正在尝试创建minikube集群,但总是失败。 任何建议都非常欢迎: C:\WINDOWS\system32 Microsoft Windows 10 Home 10.0.19042 Build 19042上的minikube v1.16.0 根据用户配置使用vmware驱动程序 启动群集minikube中的控制平面节点minikube 正在创建vmware VM(CPU=2,内存=4000MB
迷你任务(MiniTES)汉化版是一款网页放置游戏,运行于 web 浏览器。 攻略 此攻略仅原版剧情、非常简单; 升级有助于顺利展开剧情,挂机即可; 一些道具需要移动主角到地图各点: 银汐滇池:塞尔拉克 传说。 麦德拉斯:鹤立澳湾 传说。 亜达新村:瑞代尔堡 传说。 黑曜草原:鄂尔科特 传说。 死亡泽塔:奎姆森宫 传说。 天景豪苑:法林深坑 传说。 巴雷斯特:火云雾海 传说。 三角洲头:西鲁瓦恩