דלג לתוכן הראשי
אתה צופה בתיעוד למפתחים
תיעוד זה מיועד למפתחים העובדים עם פלטפורמת המפתחים של Base44. למידע על ניהול נתוני האפליקציה באמצעות עורך האפליקציות, ראה ניהול נתוני אפליקציה.
Entities מוגדרים באמצעות JSON Schema המתאר את מבנה הנתונים וכללי ה-validation.

מבנה schema בסיסי

Entity schemas מוגדרים בקבצי JSON בתיקיית ה-entities של הפרויקט שלך. כברירת מחדל, זה base44/entities/, אבל אתה יכול להתאים את הנתיב בתצורת הפרויקט שלך. שם הקובץ קובע את שם ה-entity. לדוגמה, Task.json יוצר entity בשם Task. הנה תבנית של entity schema:
{
  "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>"]
}

שדות מובנים

כל רשומת entity כוללת אוטומטית את השדות הבאים. אל תגדיר שדות עם שמות אלה ב-schema שלך.
FieldTypeתיאור
idstringמזהה ייחודי עבור הרשומה
created_datedatetimeמתי הרשומה נוצרה
updated_datedatetimeמתי הרשומה עודכנה לאחרונה
created_bystringאימייל של המשתמש שיצר את הרשומה
created_by_idstringמזהה המשתמש שיצר את הרשומה
is_deleted (internal)booleanדגל soft delete
deleted_date (internal)datetimeמתי הרשומה נמחקה
is_sample (internal)booleanהאם הרשומה היא נתוני sample
entity_name (internal)stringשם סוג ה-entity
app_id (internal)stringApp ID
environment (internal)stringאו prod או dev
שדות פנימיים לא מוחזרים בתגובות API אבל ניתנים להפניה בsecurity rules.

שדות Schema

name
string
מזהה מחרוזת עבור ה-entity.
type
string
נדרש
חייב להיות "object".
title
string
שם תצוגה ידידותי למשתמש.
description
string
תיאור של מה ה-entity מייצג.
properties
object
נדרש
אובייקט המכיל את הגדרות השדה שלך. לכל שדה יש type וכללי validation אופציונליים.

סוגי שדה

Entities תומכים בסוגי שדה שונים כדי להגדיר סוגי נתונים שונים שניתן לאחסן: string, integer, number, boolean, array, ו-object. כל שדה בתוך properties דורש type. בהתבסס על הסוג, אתה יכול להוסיף אפשרויות validation.

שדות String

שדות string תומכים באפשרויות אלו:
  • minLength / maxLength: שלוט במספר תווים מינימלי ומקסימלי.
  • pattern: ביטוי רגולרי ל-validation מותאם.
  • format: פורמטים מוגדרים מראש. ערכים נתמכים:
    • "date"
    • "date-time"
    • "time"
    • "email"
    • "uri"
    • "hostname"
    • "ipv4"
    • "ipv6"
    • "uuid"
  • enum: הגבל לערכים ספציפיים מותרים. הגדר כמערך: ["value1", "value2", "value3"].
  • default: ערך ברירת מחדל אם לא סופק.

שדות Integer

שדות integer תומכים באפשרויות אלו:
  • minimum / maximum: הגדר גבולות תחתון/עליון כולל.
  • default: ערך ברירת מחדל אם לא סופק.

שדות Number

שדות number תומכים באפשרויות אלו:
  • minimum / maximum: הגדר גבולות תחתון/עליון כולל.
  • default: ערך ברירת מחדל אם לא סופק.

שדות Boolean

שדות boolean תומכים באפשרויות אלו:
  • default: ערך ברירת מחדל אם לא סופק.

שדות Array

שדות array תומכים באפשרויות אלו:
  • items: הגדר את ה-type/schema עבור אלמנטים של array.
  • default: ערך array ברירת מחדל אם לא סופק.

שדות Object

שדות object תומכים באפשרויות אלו:
  • properties: הגדר את השדות בתוך האובייקט.
  • required: רשימה של שמות מאפיינים נדרשים.

שדות נדרשים

ציין אילו שדות חייבים להיות מסופקים:
{
  "required": ["title", "email"]
}

דוגמה מלאה

הנה 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}}"}
  }
}

פריסת entities

לאחר הגדרת ה-entity schema שלך, פרוס אותו ל-Base44 באמצעות entities push. Entities נפרסים גם אוטומטית כאשר אתה מריץ את פקודת deploy כדי לפרוס את כל הפרויקט שלך. לאחר הפריסה, אתה יכול לתקשר עם ה-entities שלך באמצעות מודול ה-entities של ה-SDK. שם ה-entity ב-schema שלך חייב להתאים בדיוק לאופן שבו אתה ניגש אליו ב-SDK, כולל אותיות גדולות. לדוגמה, אם ל-schema שלך יש "name": "Task", אתה חייב לגשת אליו כ-base44.entities.Task.list(). ניתן לצפות ב-entity schemas שנפרסו בלוח הבקרה בקטע Data.

ראה גם

  • User Schema: entity מובנה מיוחד לאימות משתמשים
  • Security: הגדר כללי row-level security עבור entities
  • Project Structure: כיצד entity schemas משתלבים בפרויקט שלך
דף זה תורגם באמצעות בינה מלאכותית. למידע המדויק והעדכני ביותר, עיין בגרסה האנגלית.