Builds JSON Schema Draft 7 documents from normalized fields.
This internal module powers ExParamsSchema.json_schema/1 and json_schema/2.
Summary
Functions
Builds JSON Schema and error-path definitions from validated fields.
Types
@type build_result() :: {schema :: schema_document(), error_definitions :: [ExParamsSchema.Schema.error_definition()]}
@type schema_document() :: map()
Functions
@spec build([ExParamsSchema.Definition.Field.t()], boolean()) :: build_result()
Builds JSON Schema and error-path definitions from validated fields.
iex> fields = ExParamsSchema.Definition.compile_fields!([{:count, :integer, [minimum: 1]}])
iex> {schema, errors} = ExParamsSchema.Schema.JsonSchema.build(fields, false)
iex> get_in(schema, ["properties", "count"])
%{"minimum" => 1, "type" => "integer"}
iex> errors
[{["count"], {:invalid_param, :count}, 0}]