安装:go gethttps://github.com/favadi/protoc-go-inject-tag 这个库可以在proto文件中注入tag,然后在导出的时候相应的字段的tag就可以被修改掉了。具体做法如下: test.proto syntax=proto3;packagetest; option go_package =".;test"; message MyMessage {// @inject_tag: json:"Code"int64Code =1; } 可...
添加多个自定义tag: # modules/resource_manager/idl/region.proto message Region { // @gotags: json:"region_name" validate:"required" string region_name = 1; } 2. 生成pb.go文件 make build-region-proto 3. 使用protoc-go-inject-tag 安装protoc-go-inject-tag: go install github.com/favadi/pr...
打开一个新的终端窗口,运行以下命令来检查 protoc-go-inject-tag 是否已正确安装: bash protoc-go-inject-tag --version 如果命令返回了版本号信息,说明安装成功;如果返回 "command not found" 或其他错误信息,请检查环境变量配置是否正确,或者重新执行安装命令。通过...
官方golang/protobuf 固然有自己的原则,社区也有自己的需求。开源的项目过大了,长年累月下来会难维护。 可能像 protoc-go-inject-tag 这种较为单一职责的开源库,会活的更好,也会更好找到新的人衔接。也是一个不错的方向。 文章持续更新,可以微信搜【脑子进煎鱼了】阅读,本文GitHubgithub.com/eddycjy/blog已收录...
说白了,官方觉得这个特性太 Go 语言定制化了,不愿意支持。 有什么替代方案 虽然现在 gogo 这一个开源项目已经进入废弃阶段,但根据 issues 内推荐的情况。可以选择继续使用 gogo,或者使用protoc-go-inject-tag这一个项目。 简单例子,Proto 定义: // file: test.proto ...
go.sum main.go main_test.go parse.go verbose.go README BSD-2-Clause license protoc-go-inject-tag Why? Golangprotobufdoesn't supportcustom tags to generated structs. This tool injects custom tags to generated protobuf files, which is commonly used for validating fields, omitting fields from...
先下载本项目: go get -u gitee.com/xuesongtao/protoc-go-valid protoc-go-valid 命令操作, 如下: 2.1 protoc-go-valid -init="true" 2.2 protoc-go-valid -d="待注入的目录" 2.3 protoc-go-valid -p="匹配模式" 2.4 protoc-go-valid -f="单个待注入的文件" 参考protoc-go-inject-tag ...
goget github.com/favadi/protoc-go-inject-tag 2.proto文件中写注释 //file:test.proto syntax ="proto3"; package pb;messageIP { // @inject_tag: valid:"ip"stringAddress =1; } 3.生成文件 protoc --go_out=. test.proto protoc-go-inject-tag -input=./test.pb.go...
protoc-go-inject-tag -input=./example/testproto/test.pb.go --go_out ./example/api --go_opt=paths=source_relative \ --go-gin_out ./example/api --go-gin_opt=paths=source_relative \ example/api/product/app/v1/v1.proto protoc-go-inject-tag -input=./example/api/product/app/v1/...
所以我只要对SysUserORM添加 对应的BeforeCreate_方法就行了 拓展 同理 如果 你想 给 实体 加上 json 的 tag 标记 ,下面 有个 库 可以 参考着用 https://github.com/favadi/protoc-go-inject-tag https://github.com/srikrsna/protoc-gen-gotag 有空 写下怎么用...