Golang Go语言中基于 protobuf 的数据验证算法按套路出牌吗?

最真实的目的其实是做数据校验, 其实这个东西完全满足我的需求 https://github.com/go-playground/validator

但是因为没用过 protobuf 我在想如果将 bytes 数据转换成 protobuf 在转回来是否可行?

“不建议,但是如果非要用也不是不可以,这种算不可行。”


Golang Go语言中基于 protobuf 的数据验证算法按套路出牌吗?

更多关于Golang Go语言中基于 protobuf 的数据验证算法按套路出牌吗?的实战教程也可以访问 https://www.itying.com/category-94-b0.html

2 回复

protobuf 是一种轻便高效的结构化数据存储格式, 目的是在数据传输时提高效率的

更多关于Golang Go语言中基于 protobuf 的数据验证算法按套路出牌吗?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


在Golang(Go语言)中,基于Protocol Buffers(protobuf)的数据验证算法是否按套路出牌,这个问题可以从几个方面来解答。

首先,protobuf本身是一种高效的数据序列化框架,它主要用于不同编程语言之间的数据交换。protobuf本身并不直接提供数据验证的功能,比如检查字段是否符合特定的格式或范围。但是,protobuf允许在.proto文件中定义字段的约束,如是否必填、数据类型等,这些约束在编码和解码时会被自动检查。

为了在Go语言中使用基于protobuf的数据验证,通常会结合一些验证库,如protoc-gen-validate(PGV)。这个工具可以为protobuf消息生成Go语言的验证代码,允许你在编码前或解码后对数据进行详细的验证。使用PGV,你可以定义诸如字符串长度、数值范围、枚举值有效性等复杂的验证规则。

因此,从某种程度上说,基于protobuf的数据验证在Go语言中是有套路的。你需要定义.proto文件,使用适当的验证工具(如PGV),并在你的Go代码中调用这些验证函数。这样,你就可以确保数据在序列化、反序列化以及业务逻辑处理之前满足预期的约束条件。

总的来说,虽然protobuf本身不提供强大的验证功能,但通过结合适当的工具和库,Go语言开发者可以实现对基于protobuf的数据的全面验证。

回到顶部