pbgo 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
pbgo 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: BSD
开发语言: Google Go
操作系统: 跨平台
收录时间: 2018-07-18
提 交 者: 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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

pbgo 的相关资讯

还没有任何资讯

pbgo 的相关博客

还没有任何博客,写博客

pbgo 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
5 收藏
分享
返回顶部
顶部