基于 Protobuf 的 RPC/REST 迷你框架 pbgo
- 授权协议: BSD
- 开发语言: Google Go
- 操作系统: 跨平台
- 软件首页: https://github.com/chai2010/pbgo
- 软件文档: https://godoc.org/github.com/chai2010/pbgo
- 官方下载: https://github.com/chai2010/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
Fluent Python
Luciano Ramalho / O'Reilly Media / 2015-8-20 / USD 39.99
Learn how to write idiomatic, effective Python code by leveraging its best features. Python's simplicity quickly lets you become productive with it, but this often means you aren’t using everything th......一起来看看 《Fluent Python》 这本书的介绍吧!
