twirp简介
twirp是谷歌开源的rpc框架,默认支持golang并提供其他语言的实现版本,使用proto进行rpc定义开发。
安装
安装proto插件和twirp插件
go get github.com/twitchtv/twirp/protoc-gen-twirp
go get github.com/golang/protobuf/protoc-gen-go
开发
- 编写proto文件
//文件名test.proto syntax = "proto3"; //包名,通过protoc生成时go文件时 package main; message A{ } message B { string result = 1; } service Test{ rpc hello(A) returns(B); }
- 生成go代码
proto_path指定proto文件所在目录,twirp_out指定生成的rpc代码存放目录,go_out指定生成的modal代码存放目录,最后一个参数是编译的proto文件路径protoc --proto_path=. --twirp_out=. --go_out=. ./test.proto
- server与hook
阅读twirp_out中的代码
默认生成的Server结构体以service名称+Server作为名称
默认生成的service接口以service名称为名
主要方法有type Test interface { Hello(context.Context, *A) (*B,