schema_infer() builds a SchemaDoc from example data using conservative,
structural inference only. It infers base/container check kinds and nested
field structure, but does not guess higher-level authoring constructs such as
$defs, $ref, keys, groups, or combinators.
Arguments
- x
Example data to infer from.
- version
Optional schema document version string.
- keys
Strategy for inferring optional
keysrules from observed names. Use"none"to skip names-rule inference,"named"to require named inputs,"required"to require the observed names to be present, or"exact"to require the observed names in the observed order.- arrays
Strategy for inferring unnamed lists. Use
"none"to keep unnamed lists generic, or"rest"to infer them as unnamed containers whose observed element schemas are stored inrest.
Details
To parse an existing schema DSL document, use schema_doc() or
schema_read() instead.
Examples
payload <- list(items = list(list(id = 1L), list(id = 2L)))
schema_infer(payload, keys = "named", arrays = "rest")
#> {
#> "check": {
#> "kind": "list"
#> },
#> "keys": {
#> "type": "named"
#> },
#> "fields": {
#> "items": {
#> "check": {
#> "kind": "list"
#> },
#> "keys": {
#> "type": "unnamed"
#> },
#> "rest": {
#> "check": {
#> "kind": "list"
#> },
#> "keys": {
#> "type": "named"
#> },
#> "fields": {
#> "id": {
#> "check": {
#> "kind": "int"
#> }
#> }
#> }
#> }
#> }
#> }
#> }