Saltar al contenido principal
Estás viendo la documentación para desarrolladores
Esta documentación es para desarrolladores que trabajan con la plataforma para desarrolladores de Base44. Para información sobre la gestión de los datos de tu app desde el editor de apps, consulta Gestionar los datos de la app.
Las entidades se definen usando un JSON Schema que describe la estructura de datos y las reglas de validación.

Estructura básica del esquema

Los esquemas de entidad se definen en archivos JSON en el directorio de entidades de tu proyecto. Por defecto es base44/entities/, pero puedes personalizar la ruta en tu configuración del proyecto. El nombre del archivo determina el nombre de la entidad. Por ejemplo, Task.json crea una entidad Task. Aquí tienes una plantilla de esquema de entidad:
{
  "name": "my_entity",
  "type": "object",
  "title": "My Entity",
  "description": "Description of what this entity represents",
  "properties": {
    "<field_name>": {
      "type": "<field_type>",
      "<option>": "<value>"
    }
  },
  "required": ["<field_name>"]
}

Campos integrados

Cada registro de entidad incluye automáticamente los siguientes campos. No definas campos con estos nombres en tu esquema.
CampoTipoDescripción
idstringIdentificador único del registro
created_datedatetimeCuándo se creó el registro
updated_datedatetimeCuándo se actualizó el registro por última vez
created_bystringEmail del usuario que creó el registro
created_by_idstringID del usuario que creó el registro
is_deleted (interno)booleanFlag de eliminación lógica
deleted_date (interno)datetimeCuándo se eliminó el registro
is_sample (interno)booleanSi el registro es de datos de muestra
entity_name (interno)stringNombre del tipo de entidad
app_id (interno)stringApp ID
environment (interno)stringprod o dev
Los campos internos no se devuelven en las respuestas de la API, pero se pueden referenciar en las reglas de seguridad.

Campos del esquema

name
string
Identificador en cadena de texto de la entidad.
type
string
requerido
Debe ser "object".
title
string
Nombre para mostrar amigable.
description
string
Descripción de lo que representa la entidad.
properties
object
requerido
Objeto que contiene las definiciones de tus campos. Cada campo tiene un type y reglas opcionales de validación.

Tipos de campo

Las entidades admiten varios tipos de campo para definir los distintos tipos de datos que puedes almacenar: string, integer, number, boolean, array y object. Cada campo dentro de properties requiere un type. Según el tipo, puedes añadir opciones de validación.

Campos string

Los campos string admiten estas opciones:
  • minLength / maxLength: Controlan el número mínimo y máximo de caracteres.
  • pattern: Expresión regular para validación personalizada.
  • format: Formatos predefinidos. Valores admitidos:
    • "date"
    • "date-time"
    • "time"
    • "email"
    • "uri"
    • "hostname"
    • "ipv4"
    • "ipv6"
    • "uuid"
  • enum: Restringe a valores específicos permitidos. Defínelo como un array: ["value1", "value2", "value3"].
  • default: Valor predeterminado si no se proporciona ninguno.

Campos integer

Los campos integer admiten estas opciones:
  • minimum / maximum: Establecen límites inferior/superior inclusivos.
  • default: Valor predeterminado si no se proporciona ninguno.

Campos number

Los campos number admiten estas opciones:
  • minimum / maximum: Establecen límites inferior/superior inclusivos.
  • default: Valor predeterminado si no se proporciona ninguno.

Campos boolean

Los campos boolean admiten estas opciones:
  • default: Valor predeterminado si no se proporciona ninguno.

Campos array

Los campos array admiten estas opciones:
  • items: Define el tipo/esquema para los elementos del array.
  • default: Valor de array predeterminado si no se proporciona ninguno.

Campos object

Los campos object admiten estas opciones:
  • properties: Define los campos dentro del objeto.
  • required: Lista de nombres de propiedades obligatorios.

Campos obligatorios

Especifica qué campos deben proporcionarse:
{
  "required": ["title", "email"]
}

Ejemplo completo

Aquí tienes un esquema de entidad completo:
{
  "name": "Task",
  "type": "object",
  "title": "Task",
  "description": "A task item with priority, due date, and completion status",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 1000
    },
    "priority": {
      "type": "string",
      "enum": ["low", "medium", "high"],
      "default": "medium"
    },
    "completed": {
      "type": "boolean",
      "default": false
    },
    "due_date": {
      "type": "string",
      "format": "date"
    },
    "tags": {
      "type": "array",
      "items": { "type": "string" }
    },
    "internal_notes": {
      "type": "string",
      "rls": {
        "read": {"user_condition": {"role": "admin"}},
        "write": {"user_condition": {"role": "admin"}}
      }
    }
  },
  "required": ["title"],
  "rls": {
    "create": true,
    "read": {"created_by": "{{user.email}}"},
    "update": {"created_by": "{{user.email}}"},
    "delete": {"created_by": "{{user.email}}"}
  }
}

Desplegar entidades

Después de definir tu esquema de entidad, despliégalo en Base44 usando entities push. Las entidades también se despliegan automáticamente cuando ejecutas el comando deploy para desplegar todo tu proyecto. Una vez desplegado, puedes interactuar con tus entidades usando el módulo entities del SDK. El nombre de la entidad en tu esquema debe coincidir exactamente con cómo accedes a ella en el SDK, incluida la capitalización. Por ejemplo, si tu esquema tiene "name": "Task", debes acceder a ella como base44.entities.Task.list(). Los esquemas de entidad desplegados se pueden visualizar en el panel en la sección Data.

Ver también

Esta página se tradujo con IA. Para información más precisa y actualizada, consulta la versión en inglés.