pbgo

基于 Protobuf 的 RPC/REST 迷你框架
授权协议 BSD
开发语言 Google Go
所属分类 Web应用开发、 REST/RESTful项目
软件类型 开源软件
地区 国产
投 递 者 蒙洛华
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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 浏览器。 攻略 此攻略仅原版剧情、非常简单; 升级有助于顺利展开剧情,挂机即可; 一些道具需要移动主角到地图各点: 银汐滇池:塞尔拉克 传说。 麦德拉斯:鹤立澳湾 传说。 亜达新村:瑞代尔堡 传说。 黑曜草原:鄂尔科特 传说。 死亡泽塔:奎姆森宫 传说。 天景豪苑:法林深坑 传说。 巴雷斯特:火云雾海 传说。 三角洲头:西鲁瓦恩