Conditional Fields#
Some fields might be required only when other fields are present. This is know as dependentRequired in the JSON Schema.
Struct Tag#
In Huma the dependentRequired tag is supported to apply conditional requirements to fields, as per the example below:
example.go
type MyInput struct {
Value string `json:"value,omitempty" dependentRequired:"dependent1,dependent2"`
Dependent1 string `json:"dependent1,omitempty"`
Dependent2 string `json:"dependent2,omitempty"`
}
In the example above, all the fields are optional but, if value is sent, than both dependent1 and dependent2 must also be sent.
Schema#
It is also possible to change in the schema directly without using the struct tags. To do this, one must set the
property DependentRequired in the desired schema to a map[string][]string where the key of the map is the field
where the struct tag would be created, and the slice of strings is the dependent fields.