从 protobuf 文件中生成使用 gin 的 http rpc 服务
请确保安装了以下依赖:
注意由于使用 embed 特性,Go 版本必须大于 1.16
go install github.com/varluffy/protoc-gen-go-gin@latest
例子见: example
默认情况下 rpc method 命名为 方法+资源,使用驼峰方式命名,生成代码时会进行映射
方法映射方式如下所示:
"GET", "FIND", "QUERY", "LIST", "SEARCH"
--> GET"POST", "CREATE"
--> POST"PUT", "UPDATE"
--> PUT"DELETE"
--> DELETE
service BlogService {
rpc CreateArticle(Article) returns (Article) {}
// 生成 http 路由为 post: /article
}
除此之外还可以使用 google.api.http option 指定路由,可以通过添加 additional_bindings 使一个 rpc 方法对应多个路由
// blog service is a blog demo
service BlogService {
rpc GetArticles(GetArticlesReq) returns (GetArticlesResp) {
//
// 可以通过添加 additional_bindings 使一个 rpc 方法对应多个路由
option (google.api.http) = {
get: "/v1/articles"
additional_bindings {
get: "/v1/author/{author_id}/articles"
}
};
}
}
make gen_example