Vai al contenuto principale
Stai visualizzando la documentazione per sviluppatori
Questa documentazione è per sviluppatori che lavorano con la piattaforma per sviluppatori di Base44. Per informazioni sulla gestione dei dati della tua app usando l’editor, consulta Gestire i dati dell’app.
Le entità sono definite usando uno JSON Schema che descrive la struttura dei dati e le regole di validazione.

Struttura base dello schema

Gli schemi delle entità sono definiti in file JSON nella directory delle entità del tuo progetto. Per impostazione predefinita, è base44/entities/, ma puoi personalizzare il percorso nella configurazione del progetto. Il nome del file determina il nome dell’entità. Ad esempio, Task.json crea un’entità Task. Ecco un modello di schema di entità:
{
  "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>"]
}

Campi integrati

Ogni record di entità include automaticamente i seguenti campi. Non definire campi con questi nomi nel tuo schema.
CampoTipoDescrizione
idstringIdentificatore univoco del record
created_datedatetimeQuando il record è stato creato
updated_datedatetimeQuando il record è stato aggiornato l’ultima volta
created_bystringEmail dell’utente che ha creato il record
created_by_idstringID dell’utente che ha creato il record
is_deleted (interno)booleanFlag di eliminazione soft
deleted_date (interno)datetimeQuando il record è stato eliminato
is_sample (interno)booleanSe il record è dato di esempio
entity_name (interno)stringNome del tipo di entità
app_id (interno)stringID dell’app
environment (interno)stringprod oppure dev
I campi interni non sono restituiti nelle risposte API ma possono essere referenziati nelle regole di sicurezza.

Campi dello schema

name
string
Identificatore stringa per l’entità.
type
string
obbligatorio
Deve essere "object".
title
string
Nome visualizzato in modo leggibile.
description
string
Descrizione di ciò che l’entità rappresenta.
properties
object
obbligatorio
Oggetto contenente le definizioni dei campi. Ogni campo ha un type e regole di validazione opzionali.

Tipi di campo

Le entità supportano vari tipi di campo per definire diversi tipi di dati che puoi memorizzare: string, integer, number, boolean, array e object. Ogni campo dentro properties richiede un type. In base al tipo, puoi aggiungere opzioni di validazione.

Campi stringa

I campi stringa supportano queste opzioni:
  • minLength / maxLength: controllano il numero minimo e massimo di caratteri.
  • pattern: espressione regolare per la validazione personalizzata.
  • format: formati predefiniti. Valori supportati:
    • "date"
    • "date-time"
    • "time"
    • "email"
    • "uri"
    • "hostname"
    • "ipv4"
    • "ipv6"
    • "uuid"
  • enum: limita a valori specifici consentiti. Definisci come array: ["value1", "value2", "value3"].
  • default: valore predefinito se non ne viene fornito uno.

Campi interi

I campi interi supportano queste opzioni:
  • minimum / maximum: impostano limiti inferiore/superiore inclusivi.
  • default: valore predefinito se non ne viene fornito uno.

Campi numerici

I campi numerici supportano queste opzioni:
  • minimum / maximum: impostano limiti inferiore/superiore inclusivi.
  • default: valore predefinito se non ne viene fornito uno.

Campi booleani

I campi booleani supportano queste opzioni:
  • default: valore predefinito se non ne viene fornito uno.

Campi array

I campi array supportano queste opzioni:
  • items: definisce il tipo/schema per gli elementi dell’array.
  • default: valore array predefinito se non ne viene fornito uno.

Campi oggetto

I campi oggetto supportano queste opzioni:
  • properties: definisce i campi all’interno dell’oggetto.
  • required: elenco dei nomi delle proprietà obbligatorie.

Campi obbligatori

Specifica quali campi devono essere forniti:
{
  "required": ["title", "email"]
}

Esempio completo

Ecco uno schema di entità 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}}"}
  }
}

Distribuzione delle entità

Dopo aver definito lo schema dell’entità, distribuiscilo a Base44 usando entities push. Le entità vengono anche distribuite automaticamente quando esegui il comando deploy per distribuire l’intero progetto. Una volta distribuita, puoi interagire con le tue entità usando il modulo entities dell’SDK. Il nome dell’entità nel tuo schema deve corrispondere esattamente a come vi accedi nell’SDK, incluse le maiuscole. Ad esempio, se il tuo schema ha "name": "Task", devi accedervi come base44.entities.Task.list(). Gli schemi delle entità distribuite possono essere visualizzati nella dashboard nella sezione Data.

Vedi anche

  • Schema utente: entità integrata speciale per l’autenticazione degli utenti
  • Sicurezza: configura regole di sicurezza a livello di riga per le entità
  • Struttura del progetto: come gli schemi delle entità si inseriscono nel tuo progetto
Questa pagina è stata tradotta utilizzando l’IA. Per informazioni più accurate e aggiornate, consulta la versione inglese.