Skip to content

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:

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.


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.