Saltar a contenido

Campos Custom con JSON Schema

Introducción

La función de Campos Custom permite a los usuarios definir campos personalizados dentro de un objeto JSON, utilizando JSON Schema como herramienta de validación. Esta función está diseñada para admitir propiedades de tipo string, integer, number y boolean, con ciertas validaciones específicas.

Uso básico

Para definir campos personalizados utilizando JSON Schema, sigue el siguiente formato:

{
  "type": "object",
  "required": ["<nombre_del_campo>"],
  "properties": {
    "<nombre_del_campo>": {
      "type": "<tipo_del_campo>"
    }
  }
}

Ejemplo:

{
  "type": "object",
  "required": ["nombre"],
  "properties": {
    "nombre": {
      "type": "string"
    },
    "edad": {
      "type": "integer"
    },
    "activo": {
      "type": "boolean"
    }
  }
}

Especificaciones soportadas

La función de Campos Custom actualmente admite las siguientes especificaciones de JSON Schema:

  • Tipo de datos compatibles:

    • string
    • integer: soporta únicamente números enteros.
    • number: soporta números enteros y racionales (con decimales).
    • boolean
  • Validaciones admitidas:

    • required: Para indicar que un campo es obligatorio, espera una lista de los nombre de dichos campos.
    • maxLength: Para limitar la longitud máxima de una cadena.
    • maximum: Para definir un valor máximo para propiedades de tipo número.
    • enum: Para delimitar qué textos son válidos en el campo String; se muestra como un selector de opciones.

Ejemplos de uso

Campo obligatorio

{
  "type": "object",
  "required": ["nombre"],
  "properties": {
    "nombre": {
      "type": "string"
    }
  }
}

Campo de cadena con longitud máxima

{
  "type": "object",
  "required": [],
  "properties": {
    "descripcion": {
      "type": "string",
      "maxLength": 100
    }
  }
}

Campo de selección simple

{
  "type": "object",
  "required": [],
  "properties": {
    "día": {
      "type": "string",
      "enum": ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes"]
    }
  }
}

Campo numérico con valor máximo

{
  "type": "object",
  "required": [],
  "properties": {
    "edad": {
      "type": "integer",
      "maximum": 45
    }
  }
}

¿Cómo se configura?

Para configurar estos campos deberás dirigirte al perfil de la Compañía desde la cuenta -1 y agregar el JSON Schema en el campo de Custom Field.

Limitaciones

  • Solo se admiten las validaciones mencionadas anteriormente.
  • No se admiten tipos de datos adicionales más allá de los especificados.