Zum Hauptinhalt springen
Du siehst gerade die Entwicklerdokumentation
Diese Dokumentation richtet sich an Entwickler, die mit der Base44-Entwicklerplattform arbeiten. Informationen zum Verwalten deiner App-Daten über den App-Editor findest du unter App-Daten verwalten.
Entitäten werden mit einem JSON-Schema definiert, das die Datenstruktur und die Validierungsregeln beschreibt.

Grundlegende Schema-Struktur

Entity-Schemas werden in JSON-Dateien im Entities-Verzeichnis deines Projekts definiert. Standardmäßig ist das base44/entities/, aber du kannst den Pfad in deiner Projektkonfiguration anpassen. Der Dateiname bestimmt den Entitätsnamen. Zum Beispiel erstellt Task.json eine Task-Entität. Hier ist ein Schema-Template für eine Entität:
{
  "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>"]
}

Integrierte Felder

Jeder Entity-Datensatz enthält automatisch die folgenden Felder. Definiere in deinem Schema keine Felder mit diesen Namen.
FeldTypBeschreibung
idstringEindeutige Kennung für den Datensatz
created_datedatetimeWann der Datensatz erstellt wurde
updated_datedatetimeWann der Datensatz zuletzt aktualisiert wurde
created_bystringE-Mail des Benutzers, der den Datensatz erstellt hat
created_by_idstringID des Benutzers, der den Datensatz erstellt hat
is_deleted (intern)booleanSoft-Delete-Flag
deleted_date (intern)datetimeWann der Datensatz gelöscht wurde
is_sample (intern)booleanOb der Datensatz Beispieldaten sind
entity_name (intern)stringName des Entitätstyps
app_id (intern)stringApp-ID
environment (intern)stringEntweder prod oder dev
Interne Felder werden nicht in API-Antworten zurückgegeben, können aber in Sicherheitsregeln referenziert werden.

Schema-Felder

name
string
String-Identifier für die Entität.
type
string
erforderlich
Muss "object" sein.
title
string
Benutzerfreundlicher Anzeigename.
description
string
Beschreibung dessen, was die Entität darstellt.
properties
object
erforderlich
Objekt, das deine Felddefinitionen enthält. Jedes Feld hat einen type und optionale Validierungsregeln.

Feldtypen

Entitäten unterstützen verschiedene Feldtypen, um unterschiedliche Arten von Daten zu definieren, die du speichern kannst: string, integer, number, boolean, array und object. Jedes Feld innerhalb von properties benötigt einen type. Je nach Typ kannst du Validierungsoptionen hinzufügen.

String-Felder

String-Felder unterstützen diese Optionen:
  • minLength / maxLength: Steuern die minimale und maximale Zeichenanzahl.
  • pattern: Regulärer Ausdruck für eigene Validierung.
  • format: Vordefinierte Formate. Unterstützte Werte:
    • "date"
    • "date-time"
    • "time"
    • "email"
    • "uri"
    • "hostname"
    • "ipv4"
    • "ipv6"
    • "uuid"
  • enum: Beschränkt auf bestimmte erlaubte Werte. Als Array definieren: ["value1", "value2", "value3"].
  • default: Standardwert, falls keiner angegeben wird.

Integer-Felder

Integer-Felder unterstützen diese Optionen:
  • minimum / maximum: Inklusive Unter-/Obergrenzen.
  • default: Standardwert, falls keiner angegeben wird.

Number-Felder

Number-Felder unterstützen diese Optionen:
  • minimum / maximum: Inklusive Unter-/Obergrenzen.
  • default: Standardwert, falls keiner angegeben wird.

Boolean-Felder

Boolean-Felder unterstützen diese Optionen:
  • default: Standardwert, falls keiner angegeben wird.

Array-Felder

Array-Felder unterstützen diese Optionen:
  • items: Definiert den Typ/das Schema der Array-Elemente.
  • default: Standardwert für das Array, falls keiner angegeben wird.

Object-Felder

Object-Felder unterstützen diese Optionen:
  • properties: Definiert die Felder innerhalb des Objekts.
  • required: Liste der erforderlichen Eigenschaftsnamen.

Erforderliche Felder

Lege fest, welche Felder angegeben werden müssen:
{
  "required": ["title", "email"]
}

Vollständiges Beispiel

Hier ist ein vollständiges Entity-Schema:
{
  "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}}"}
  }
}

Entitäten deployen

Nachdem du dein Entity-Schema definiert hast, deploye es mit entities push zu Base44. Entitäten werden außerdem automatisch deployed, wenn du den deploy-Befehl ausführst, um dein gesamtes Projekt zu deployen. Sobald deployed, kannst du mit deinen Entitäten über das entities-Modul des SDK interagieren. Der Entitätsname in deinem Schema muss exakt mit dem übereinstimmen, wie du im SDK darauf zugreifst, einschließlich Groß- und Kleinschreibung. Wenn dein Schema z. B. "name": "Task" hat, musst du es als base44.entities.Task.list() ansprechen. Deployed Entity-Schemas können im Dashboard im Bereich Data eingesehen werden.

Siehe auch

  • User-Schema: Spezielle eingebaute Entität für Benutzer-Authentifizierung
  • Sicherheit: Konfiguriere Row-Level-Security-Regeln für Entitäten
  • Projektstruktur: Wie Entity-Schemas in dein Projekt passen
Diese Seite wurde mit KI übersetzt. Für die genauesten und aktuellsten Informationen siehe die englische Version.