Pular para o conteúdo principal
Você está vendo a documentação para desenvolvedores
Esta documentação é para desenvolvedores que trabalham com a plataforma para desenvolvedores Base44. Para informações sobre como gerenciar os dados do seu app usando o editor de apps, veja Gerenciar dados do app.
As entidades são definidas usando um JSON Schema que descreve a estrutura dos dados e as regras de validação.

Estrutura básica do schema

Schemas de entidade são definidos em arquivos JSON no diretório de entidades do seu projeto. Por padrão, este é base44/entities/, mas você pode personalizar o caminho na configuração do seu projeto. O nome do arquivo determina o nome da entidade. Por exemplo, Task.json cria uma entidade Task. Aqui está um template de schema de entidade:
{
  "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 entidade inclui automaticamente os seguintes campos. Não defina campos com esses nomes no seu schema.
CampoTipoDescrição
idstringIdentificador único do registro
created_datedatetimeQuando o registro foi criado
updated_datedatetimeQuando o registro foi atualizado pela última vez
created_bystringE-mail do usuário que criou o registro
created_by_idstringID do usuário que criou o registro
is_deleted (interno)booleanFlag de soft delete
deleted_date (interno)datetimeQuando o registro foi excluído
is_sample (interno)booleanSe o registro é dado de amostra
entity_name (interno)stringNome do tipo de entidade
app_id (interno)stringID do app
environment (interno)stringOu prod ou dev
Campos internos não são retornados nas respostas da API, mas podem ser referenciados em regras de segurança.

Campos do schema

name
string
Identificador em string para a entidade.
type
string
obrigatório
Deve ser "object".
title
string
Nome de exibição amigável ao usuário.
description
string
Descrição do que a entidade representa.
properties
object
obrigatório
Objeto contendo suas definições de campo. Cada campo tem um type e regras de validação opcionais.

Tipos de campo

As entidades suportam vários tipos de campo para definir diferentes tipos de dados que você pode armazenar: string, integer, number, boolean, array e object. Cada campo dentro de properties requer um type. Com base no tipo, você pode adicionar opções de validação.

Campos string

Campos string suportam estas opções:
  • minLength / maxLength: Controla a contagem mínima e máxima de caracteres.
  • pattern: Expressão regular para validação customizada.
  • format: Formatos predefinidos. Valores suportados:
    • "date"
    • "date-time"
    • "time"
    • "email"
    • "uri"
    • "hostname"
    • "ipv4"
    • "ipv6"
    • "uuid"
  • enum: Restrição a valores permitidos específicos. Defina como um array: ["value1", "value2", "value3"].
  • default: Valor padrão se nenhum for fornecido.

Campos integer

Campos integer suportam estas opções:
  • minimum / maximum: Define limites inferior/superior inclusivos.
  • default: Valor padrão se nenhum for fornecido.

Campos number

Campos number suportam estas opções:
  • minimum / maximum: Define limites inferior/superior inclusivos.
  • default: Valor padrão se nenhum for fornecido.

Campos boolean

Campos boolean suportam estas opções:
  • default: Valor padrão se nenhum for fornecido.

Campos array

Campos array suportam estas opções:
  • items: Define o tipo/schema para elementos do array.
  • default: Valor padrão do array se nenhum for fornecido.

Campos object

Campos object suportam estas opções:
  • properties: Define os campos dentro do objeto.
  • required: Lista de nomes de propriedade obrigatórios.

Campos obrigatórios

Especifique quais campos devem ser fornecidos:
{
  "required": ["title", "email"]
}

Exemplo completo

Aqui está um schema de entidade 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}}"}
  }
}

Implantando entidades

Após definir seu schema de entidade, implante-o na Base44 usando entities push. As entidades também são implantadas automaticamente quando você executa o comando deploy para implantar todo o seu projeto. Uma vez implantadas, você pode interagir com suas entidades usando o módulo entities do SDK. O nome da entidade no seu schema deve corresponder exatamente a como você a acessa no SDK, incluindo capitalização. Por exemplo, se seu schema tem "name": "Task", você deve acessá-la como base44.entities.Task.list(). Schemas de entidade implantados podem ser visualizados no dashboard na seção Data.

Veja também

  • User Schema: Entidade integrada especial para autenticação de usuário
  • Segurança: Configure regras de segurança em nível de linha para entidades
  • Estrutura do projeto: Como schemas de entidade se encaixam no seu projeto
Esta página foi traduzida usando IA. Para informações mais precisas e atualizadas, consulte a versão em inglês.