gonest
Validation & Schemas

Object Builder

Single-state nested object fields

Property(&t.Address).Object(func(om *gonest.ObjectMetadata) {...}) is single-state — unlike Array, there's no separate "item" concept. The whole field is the object.

Reusing a registered schema ($ref)

m.Property(&t.Address).Object(func(om *gonest.ObjectMetadata) {
  om.Metadata(addressMetadata) // reuse an already-registered *Schema
  om.Required()
  om.Description("Endereço principal")
})

Open / free-form objects

m.Property(&t.Metadata).Object(func(om *gonest.ObjectMetadata) {
  om.AdditionalProperties() // e.g. for map[string]any
}).Nullable().Description("Metadados abertos do usuário")

om.AdditionalProperties() marks the schema as open, appropriate for map[string]any-shaped data with no fixed key set.

Next steps

On this page