gpt4 book ai didi

go - 在 proto 消息中声明一个字段标签

转载 作者:IT王子 更新时间:2023-10-29 01:10:18 26 4
gpt4 key购买 nike

我刚刚开始使用 protobuf 进行 Go 编程,现在我需要验证结构中的数据。我找到了 govalidator ,这似乎完美地满足了我的需要。它确实根据字段标签验证结构,比如

type Contact struct {
firstName string `valid:"alpha,required"`
lastName string `valid:"alpha,required"`
email string `valid:"email,required"`
}

jdoe := &Contact{
firstName: "John",
lastName: "Doe",
email: "jdoe@mail.com"
}

ok, err = govalidator.ValidateStruct(jdoe)

我的 protobuf 定义看起来像

message Contact {
string firstName = 1;
string lastName = 2;
string email = 3;
}

现在我的问题是,有没有办法在原型(prototype)消息中定义字段标签。从我在生成的 go 代码中看到的情况来看,编译器无论如何都会向字段添加标签,但我可以“偷偷”我需要的标签吗?此外,我认为解码可能是一种可能的解决方案,但对我来说,解码只是将字段值复制到具有必要字段标记的等效结构中似乎效率不高。

最佳答案

具有相同的数据封装结构和来自客户端的输入纯属巧合。正如不仅在评论中建议的那样,而且在 protobuf 方面比我更有经验的同事也建议我刚刚将 proto 生成的结构中的字段映射(在这种特殊情况下为 1:1)到数据我定义的封装结构。

关于go - 在 proto 消息中声明一个字段标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35475529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com