Saltar al contenido principal

Consultar el formato de un campo

GET/v1/fields/format

Para desarrolladores

Descripción​

Devuelve las reglas para definir un campo del catálogo: el JSON Schema de config, los tipos de campo y los patrones predefinidos con los tipos que admite cada uno.

config es un fragmento de JSON Schema que describe qué valor acepta un campo. Consulte este endpoint antes de escribirlo en POST /v1/fields o para leer el que devuelve GET /v1/fields.

Autenticación​

Authorizationbearer tokenheaderobligatorio
API key con scope field:read. Formato: Bearer <API_KEY>.
X-Instance-Slugstringheaderobligatorio
Identificador de su instancia. Ver Autenticación.

Request​

Sin parámetros.

Response​

200 OKDevuelve un objeto con los campos que siguen.
typesarray de stringsiempre presente
Los tipos de campo: email, phone, text, textarea, number, date, select, multiselect, boolean, url y address.
pattern_presetsarray de objetosiempre presente
Los patrones predefinidos que un campo puede nombrar en x-patternPreset.
namestringsiempre presente
El nombre que se escribe en x-patternPreset, por ejemplo rut.
patternstringsiempre presente
La expresión regular que el valor debe cumplir completo.
hintstring | null
Un valor de ejemplo, el que el formulario muestra a quien lo completa.
applies_toarray de stringsiempre presente
Los tipos de campo que admiten este patrón.
config_schemaobjectsiempre presente
El JSON Schema de config. Cada tipo de campo tiene su schema en $defs, con el nombre del tipo (el de select es $defs.select). Una clave que el schema del tipo no declara se rechaza.
Importante

Un validador de JSON Schema aplicado al envío aceptaría valores que la plataforma rechaza: aquí pattern exige que coincida el valor completo, no solo una parte (ver las notas).

Notas
  • El ejemplo está recortado: la respuesta trae todos los patrones predefinidos y el schema de cada tipo.
  • El schema usa palabras clave que no son de JSON Schema 2020-12:
    • formatMinimum y formatMaximum acotan una fecha, con la convención de los validadores que las admiten (por ejemplo, ajv-formats).
    • x-patternPreset es propia de la plataforma: nombra uno de los patrones de pattern_presets en lugar de escribir la expresión.
  • pattern conserva el nombre y el dialecto de JSON Schema (ECMA-262), restringido a la sintaxis que la plataforma, la importación de listas y el navegador leen igual (ver Patrón de validación). Pero se aplica distinto: el valor completo tiene que coincidir, no solo una parte.
Request
curl -X GET "https://cl2api.fidelizador.com/v1/fields/format" \
-H "Authorization: Bearer <API_KEY>" \
-H "X-Instance-Slug: <slug>"
Response
{
"types": [
"email",
"phone",
"text",
"textarea",
"number",
"date",
"select",
"multiselect",
"boolean",
"url",
"address"
],
"pattern_presets": [
{
"name": "email",
"pattern": "^[A-Za-z0-9.!#$%&'*+\\/=?^_`\\{\\|\\}~\\-]+@[A-Za-z0-9.\\-]+\\.[A-Za-z0-9\\-]+$",
"hint": "nombre@dominio.cl",
"applies_to": [
"email",
"text"
]
},
{
"name": "rut",
"pattern": "^[0-9]{1,2}\\.?[0-9]{3}\\.?[0-9]{3}-[0-9kK]$",
"hint": "12.345.678-9",
"applies_to": [
"text"
]
}
],
"config_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:fidelizador:field-config",
"$defs": {
"select": {
"type": "object",
"additionalProperties": false,
"required": [
"oneOf"
],
"properties": {
"oneOf": {
"$ref": "#/$defs/options"
}
}
}
}
}
}