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:
Campos integrados
Cada registro de entidade inclui automaticamente os seguintes campos. Não defina campos com esses nomes no seu schema.
Campos internos não são retornados nas respostas da API, mas podem ser referenciados em regras de segurança.
Campos do schema
string
Identificador em string para a entidade.
string
obrigatório
Deve ser
"object".string
Nome de exibição amigável ao usuário.
string
Descrição do que a entidade representa.
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:Unicidade
As entidades da Base44 não suportam restrições de unicidade. Uma propriedade que não faz parte do formato do schema, comounique_fields, é armazenada junto com seu schema e ignorada.
Para evitar registros duplicados, verifique em uma função de backend se já existe um registro antes de criar um novo. Uma verificação assim reduz a janela para duplicatas, mas não a fecha. Para garantir que apenas um usuário tenha sucesso, use o padrão de reivindicação em atualizações concorrentes.
Atualizações concorrentes
A Base44 não bloqueia registros nem executa transações entre vários registros. Quando 2 usuários ou processos alteram os mesmos dados ao mesmo tempo, cada escrita é aplicada de forma independente. Esta seção mostra quais atualizações são atômicas, como reivindicar um registro com segurança e o que esperar de chamadas que escrevem vários registros.Reivindicando um registro com segurança
Para garantir que apenas um usuário possa reivindicar um registro existente, como uma tarefa ou um horário de reserva, chameupdateMany() com o id desse único registro e as condições que ainda precisam ser verdadeiras. A atualização só é aplicada se essas condições ainda corresponderem no momento da escrita. Assim, quando 2 usuários tentam ao mesmo tempo, apenas um deles tem sucesso. Verifique updated na resposta para saber se a sua teve sucesso.
Escrevendo vários registros
bulkCreate(), bulkUpdate(), updateMany(), deleteMany() e upsert() não são transações. Cada registro é escrito de forma independente. Se uma chamada falhar no meio, os registros já escritos permanecem gravados. Projete essas chamadas para que seja seguro executá-las novamente, por exemplo, filtrando registros que já foram atualizados.
Chamadas upsert() concorrentes com a mesma chave podem criar registros duplicados.
Exemplo completo
Aqui está um schema de entidade completo:Implantando entidades
Após definir seu schema de entidade, implante-o na Base44 usandoentities 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.