דלג לתוכן הראשי
אתה צופה בתיעוד למפתחים
תיעוד זה מיועד למפתחים העובדים עם פלטפורמת המפתחים של Base44. למידע על פונקציות בקאנד בעורך האפליקציות, ראהשימוש באינטגרציות.
פונקציות בקאנד מאפשרות לך להריץ קוד בקאנד מותאם בסביבה מאובטחת ומבודדת. השתמש בפונקציות כדי ליישם לוגיקה עסקית שאסור לה לרוץ בדפדפן, להתחבר ל-APIs של צד שלישי עם אישורים מוגנים, לעבד webhooks, או להרחיב את האפליקציה שלך עם נקודות קצה מותאמות. פונקציות בקאנד רצות על Deno, runtime מודרני של TypeScript. קרא לפונקציות מה-frontend שלך באמצעות ה-SDK, שמטפל באימות אוטומטית. לכל פונקציה יש גם נקודת קצה HTTP משלה עבור webhooks ואינטגרציות חיצוניות. פונקציות יכולות גם לרוץ אוטומטית באמצעות automations. תזמן פונקציות לרוץ בזמנים ספציפיים או הפעל אותן בתגובה לאירועי מסד נתונים כמו יצירה, עדכון או מחיקה של רשומות.
כל פרויקט תומך במקסימום של 50 פונקציות בקאנד.

יצירת פונקציות

צור פונקציות בקאנד כקבצי TypeScript בתיקיית ה-functions של הפרויקט שלך. כברירת מחדל תיקיית ה-functions היא base44/functions/, אבל אתה יכול להתאים את הנתיב בתצורת הפרויקט שלך. כל פונקציה חיה בתיקיית משנה משלה עם קובץ entry.ts או entry.js:
functions
<function-name>
entry.ts
ה-CLI משתמש בנתיב התיקייה יחסית לשורש ה-functions כשם הפונקציה. לדוגמה, functions/sendWelcomeEmail/entry.ts יוצר פונקציה בשם sendWelcomeEmail. אתה יכול גם לקנן פונקציות בתיקיות משנה לארגון. functions/email/send/entry.ts יוצר פונקציה בשם email/send.

הוספת קובץ תצורה

לצרכים מתקדמים כמו שמות פונקציה מותאמים או automations, הוסף קובץ function.jsonc:
functions
<function-name>
entry.ts
function.jsonc
קובץ התצורה מגדיר את שם הפונקציה ואת נקודת הכניסה:
{
  "name": "sendWelcomeEmail",
  "entry": "entry.ts",
}
Propertyתיאור
nameאופציונלי. מזהה ייחודי עבור הפונקציה. בשימוש בעת הפעלה דרך SDK או HTTP. ברירת מחדל היא נתיב התיקייה יחסית לשורש ה-functions.
entryהקובץ המכיל את קוד הפונקציה.
automationsאופציונלי. מערך של תצורות automation להרצת הפונקציה לפי לוח זמנים או בתגובה לאירועי מסד נתונים. ראה Automations לפרטים.

entry.ts

קובץ הקוד מכיל את לוגיקת הפונקציה שלך. פונקציות חייבות להשתמש ב-wrapper של Deno.serve() ולהחזיר אובייקטי Response:
import { createClientFromRequest } from "npm:@base44/sdk";

Deno.serve(async (req) => {
  try {
    const base44 = createClientFromRequest(req);
    const user = await base44.auth.me();

    if (!user) {
      return Response.json({ error: "Unauthorized" }, { status: 401 });
    }

    const { name } = await req.json();

    return Response.json({
      message: `Hello, ${name || user.full_name}!`,
    });
  } catch (error) {
    return Response.json({ error: error.message }, { status: 500 });
  }
});

בדיקה מקומית

הרץ את הפונקציות שלך מקומית עם base44 dev כדי לבדוק שינויים מבלי לפרוס. ראה Local development לפרטים.

פריסת פונקציות

פרוס פונקציות עם functions deploy או deploy כדי לדחוף את כל משאבי הפרויקט בבת אחת. אתה יכול לפרוס פונקציות ספציפיות לפי שם עם functions deploy <names...>, או להשתמש ב---force להסרת פונקציות מרוחקות שלא נמצאו מקומית. כדי להוריד פונקציות מופצות לפרויקט המקומי שלך, השתמש ב-functions pull. כדי לראות מה מופץ כרגע, השתמש ב-functions list.

קריאה לפונקציות

קרא לפונקציות בקאנד מה-frontend שלך באמצעות ה-SDK, או דרך HTTP עבור webhooks ואינטגרציות חיצוניות.

דרך ה-SDK

השתמש ב-base44.functions.invoke() כדי לקרוא לפונקציות מה-frontend שלך. ה-SDK מטפל באימות אוטומטית, ומעביר את אישורי המשתמש הנוכחי לפונקציה שלך.
import { base44 } from "@/api/base44Client";

const response = await base44.functions.invoke("sendWelcomeEmail", {
  name: "Alice",
});

דרך HTTP

לכל פונקציה מופצת יש נקודת קצה HTTP בכתובת:
https://<your-app-domain>/functions/<function-name>
זה שימושי עבור:
  • Webhooks: קבל callbacks משירותים חיצוניים כמו Stripe או GitHub.
  • אינטגרציות חיצוניות: אפשר למערכות אחרות לתקשר עם האפליקציה שלך.
  • בדיקות: קרא לפונקציות ישירות עם כלים כמו cURL או Postman.
דוגמת שימוש
curl -X POST https://your-app.base44.app/functions/sendWelcomeEmail \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice"}'
בעת קריאה לפונקציות דרך HTTP ישיר (כמו cURL או webhooks), אין הקשר משתמש מאומת. השתמש ב-asServiceRole עבור כל הפעולות במקרים אלה.

שימוש ב-SDK בפונקציות

בתוך פונקציות הבקאנד שלך, אתה יכול לגשת לנתונים, אימות ואינטגרציות של האפליקציה דרך Base44 SDK. השתמש ב-createClientFromRequest() כדי ליצור client מהבקשה הנכנסת. הקשר האימות תלוי באופן שבו הפונקציה נקראה:
  • כאשר נקראה דרך ה-SDK מה-frontend שלך: האימות של המשתמש מועבר אוטומטית. אתה יכול לגשת למשתמש הנוכחי עם base44.auth.me() ולבצע פעולות עם ההרשאות שלו. לפעולות ברמת admin, השתמש ב-asServiceRole.
  • כאשר נקראה דרך HTTP ישיר (cURL, webhooks, שירותים חיצוניים): אין משתמש מאומת, אז השתמש ב-asServiceRole עבור כל הפעולות.

חיבור ל-APIs של צד שלישי

פונקציות בקאנד הן אחת מכמה דרכים להתחבר ל-APIs של צד שלישי. הן אידיאליות כאשר אתה צריך שליטה מלאה על בקשות או רוצה לאחסן API keys באופן מאובטח כמשתני סביבה. השתמש ב-secrets set להגדרת משתני סביבה מה-CLI.

צפייה בלוגים

במהלך פיתוח מקומי, פלט הפונקציה מודפס ישירות ל-terminal שלך ללא צורך בפקודת logs. עבור פונקציות מופצות, צפה בלוגים עם פקודת logs. הלוגים כוללים פלט console, שגיאות ומידע על תזמון. אתה יכול לסנן לפי שם פונקציה או טווח זמן. אם אתה משתמש בסוכן קידוד AI, ה-base44-troubleshooter skill יכול לשלוף ולנתח את הלוגים האלה אוטומטית.

TypeScript types

ייצר TypeScript types מתצורות הפונקציה שלך כדי לקבל בטיחות סוגים ו-autocomplete עבור שמות פונקציות בקוד ה-SDK שלך. למד עוד על dynamic types.

ראה גם

  • Automations: תזמן פונקציות או הפעל אותן באירועי מסד נתונים
  • functions module: סימוכין SDK להפעלת פונקציות
  • createClientFromRequest: יצירת client בפונקציות בקאנד
  • functions deploy: פרוס פונקציות מקומיות ל-Base44
  • functions pull: הורד פונקציות מופצות לפרויקט המקומי שלך
  • functions list: רשימת כל הפונקציות המופצות
  • functions delete: מחק פונקציות מופצות
  • logs: צפה בלוגי פונקציות
  • exec: בדוק פונקציות בבידוד מסקריפטים עצמאיים
דף זה תורגם באמצעות בינה מלאכותית. למידע המדויק והעדכני ביותר, עיין בגרסה האנגלית.