私はgolangバリデーターを見ていて、2つのフィールドをどのように検証できるか知りたいですか?構造体の2つのフィールドをgolangで一緒に検証する
私はjsonボディをリクエストに送信し、ボディをこの構造体にデコードしています。本文の2つのパラメータ(ID1 & ID2)のうち、1つが存在する必要があります。だから、私は両方が存在しない場合を検証したい。
type IDs struct {
ID1 int64 `json:"id_one"`
ID2 int64 `json:"id_two"`
}
このパッケージを使用してこれを検証するにはどうすればよいですか? https://godoc.org/gopkg.in/validator.v2
私は医者の診察を受けて、それを行う方法を見つけることができませんでした。
私は
type IDs struct {
ID1 int64 `json:"id_one" validate:"min=0"`
ID2 int64 `json:"id_two" validate:"min=0"`
}
を行うことができますが、これはまだ代わりに、それらの1つが存在する必要があり、両方が存在しないとすることができます。
このパッケージを使用できない場合、これを行う他の方法は何ですか?
方法。 JSONのunmarshalerは、値が存在する場合は値を指すように設定し、値が存在しない場合はnilを設定します。これを処理するためのカスタム検証関数を設定できるように見えますが、それでも一度に1つのフィールドしか検証されません。 –
私はそれを手動でチェックする方が簡単だと思います: 'ID1 == nil && ID2 == nil {return err}' –