PocketBase הוא קצה עורפי בקוד פתוח המורכב ממסד נתונים משובץ של SQLite עם אימות נתונים, מנויים בזמן אמת ו- REST API קל לשימוש. הוא מציע גם אימות ואחסון קבצים עבור קובצי מדיה.
PocketBase מושלם עבור פרויקטים שאתה מעדיף לא לבנות עבורם קצה אחורי לא בגלל אילוצי זמן או נוחות מכיוון שהוא נייד לחלוטין ודורש הגדרה מינימלית. זה גם משתלב עם טכנולוגיות פופולריות כמו Vue, Svelte, React, Angular ו-Flutter.
שירותים הניתנים על ידי PocketBase
PocketBase מספקת את רוב השירותים המוצעים על ידי ספקי קצה אחרים כמו SupaBase.
- מסד נתונים של SQLite: PocketBase כולל מסד נתונים משובץ של SQLite. זה שונה מספקי backend אחרים שמשתמשים במסדי נתונים גדולים יותר כמו PostgreSQL או MySQL. השימוש ב-SQLite הופך את PocketBase לקל משקל יותר. אתה יכול גם להירשם לאירועי מסד נתונים בזמן אמת באמצעות API.
- אימות: PocketBase תומך באימות דואר אלקטרוני/סיסמה, וכן אימות OAuth2 דרך פייסבוק, גוגל, GitLab ו-GitHub.
- אחסון קובץ: ניתן להעלות תמונות, קבצי אודיו ווידאו לאחסון מקומי או לדלי S3 באמצעות PocketBase.
- לוח המחוונים של מנהל מערכת: לוח המחוונים לניהול מאפשר לך ליצור ולנהל אוספים במסד הנתונים. אתה יכול גם להעלות קבצים, להציג קובצי יומן, ולהגדיר את ההגדרה לשליחת אימיילים,
על פי המסמכים, PocketBase יכול לשרת בקלות 10,000+ במקביל ומתמשך בזמן אמת חיבורים על 6 שרתים פרטיים וירטואליים מה שהופך אותו לבחירה אחורית במחיר סביר עבור קטנים עד בינוניים יישומים.
שים לב ש-PocketBase מקנה קנה מידה אנכית בלבד. זה אומר שאתה צריך להוסיף עוד מעבד ו-RAM כדי להגדיל את כוח העיבוד. אם יש לך בקשה גדולה, שקול א ספק אחורי כמו Firebase המאפשר קנה מידה אופקי.
תחילת העבודה עם PocketBase
נכון לעכשיו, PocketBase מספקת שני SDK:
- SDK של JavaScript שאתה יכול להשתמש בו עם מסגרות JavaScript כמו Svelte, React, Vue ו-Angular.
- SDK של Dart עבור אפליקציות לפלטר.
הדרך הקלה ביותר להתחיל היא לעשות הורד את PocketBase. ישנם מספר קישורים, אז הקפידו להוריד את הקישורים התואמים את הסביבה שלכם.
לאחר שהורדת אותו, חלץ ונווט אל תיקיית pocketbase. לאחר מכן הפעל את הפקודה הזו בטרמינל:
./pocketbase שרת
פקודה זו אמורה להפעיל שרת אינטרנט במסלולים אלו.
- שרת: http://127.0.0.1:8090/
- REST API: http://127.0.0.1:8090/api/
- ממשק משתמש לניהול: http://127.0.0.1:8090/_/
נווט אל http://127.0.0.1:8090/_/ כתובת אתר ליצירת האוסף הראשון שלך באמצעות לוח המחוונים לניהול.
יצירת אוסף ב-PocketBase
בפעם הראשונה שאתה פותח את ממשק הניהול, הוא יבקש כתובת דוא"ל וסיסמה כדי ליצור חשבון ניהול.
כך נראה ממשק המשתמש לניהול:
לחיצה על קולקציה חדשה כפתור בממשק הניהול יפתח חלונית אוסף שתוכל למלא בפרטים כדי ליצור אוסף חדש.
כך תיצור אוסף בשם todos המורכב מכותרת ושדות שהושלמו:
אוסף יכול להיות אוסף בסיס או אישור. אוסף בסיס הוא סוג אוסף ברירת המחדל ואתה יכול להשתמש בו עבור כל סוג של נתונים. אוסף אישורים מכיל שדות נוספים לניהול משתמשים, כמו שם משתמש, אימייל ומאומת.
אינך צריך להשתמש בממשק המשתמש לניהול כדי ליצור אוסף; אתה יכול ליצור אחד באמצעות ה-API של האינטרנט. מסמכי PocketBase לספק דוגמאות ספציפיות ל-SDK כיצד ליצור ולנהל אוספים באמצעות ה-API. אתה יכול ליצור, להציג, לעדכן, למחוק או לייבא אוספים.
שימוש ב-PocketBase ביישום React
JavaScript SDK מאפשר לך ליצור אינטראקציה עם PocketBase מפרויקט React.
כדי לעקוב, התחל ב יצירת פרויקט React.
לאחר מכן, התקן את PocketBase JavaScript SDK בפרויקט React שלך באמצעות npm:
npm להתקין pocketbase --שמור
לאחר מכן, ב-app.js, ייבא את PocketBase ואתחל אותו.
יְבוּא PocketBase מ'בסיס כיס';
const pb = חָדָשׁ PocketBase(' http://127.0.0.1:8090');
כדי להמחיש כיצד PocketBase משלב את React, תיצור את פונקציות העזר עבור יישום מטלות. פונקציות אלו יצרו, יעדכנו, יאחזרו וימחקו פריטים.
צור פריט Todo
ב-app.js, צור פונקציה בשם addTodo.
const addTodo = אסינכרון (טודו) => {
לְנַסוֹת {
const שיא = לְהַמתִיןלְהַמתִין pb.collection("לעשות").create (todo);
לַחֲזוֹר תקליט;
} לתפוס (שגיאה) {
לַחֲזוֹר { שְׁגִיאָה: הודעת שגיאה };
}
};
פונקציה זו מוסיפה שיא חדש באוסף ה-todos.
עדכן פריט מטלות
כדי לעדכן רשומה באוסף המשימות, צור פונקציה בשם updateTodo והשתמש בשיטת העדכון.
const updateTodo = אסינכרון (record_id, todo) => {
לְנַסוֹת {
const שיא = לְהַמתִין pb.collection("לעשות".update (record_id, todo);
לַחֲזוֹר תקליט;
} לתפוס (שגיאה) {
לַחֲזוֹר { שְׁגִיאָה: הודעת שגיאה };
}
};
הפונקציה updateTodo מוצאת את פריט המטלות על סמך מזהה הרשומה ומעדכנת אותו בנתונים החדשים.
מחק פריט מטלות
ב-app.js, צור פונקציה בשם deleteTodo שמוחקת רשומה באוסף המשימות.
const deleteTodo = אסינכרון (record_id) => {
לְנַסוֹת {
לְהַמתִין pb.collection("לעשות").delete (record_id);
} לתפוס (שגיאה) {
לַחֲזוֹר { שְׁגִיאָה: הודעת שגיאה };
}
};
אחזר פריט Todo
ניתן לאחזר פריט מטלה בודד או את כל הפריטים מהאוסף.
פונקציה זו מאחזרת פריט מטלה בודד לפי מזהה:
const getTodo = אסינכרון (record_id) => {
לְנַסוֹת {
const שיא = לְהַמתִין pb.collection("לעשות").getOne (record_id, {
לְהַרְחִיב: "relField1,relField2.subRelField",
});
לַחֲזוֹר תקליט
} לתפוס (שגיאה) {
לַחֲזוֹר { שְׁגִיאָה: הודעת שגיאה };
}
};
בעוד שהפונקציה שלהלן תחזיר את כל הרשומות באוסף המשימות:
const getTodos = אסינכרון (record_id) => {
לְנַסוֹת {
const רשומות = לְהַמתִין pb
.אוסף("לעשות")
.getFullList(200 /* גודל אצווה */, {
סוג: "-נוצר",
});
לַחֲזוֹר רשומות;
} לתפוס (שגיאה) {
לַחֲזוֹר { שְׁגִיאָה: הודעת שגיאה };
}
}
אתה יכול להשתמש בפונקציות אלה כדי ליצור ולעדכן את ממשק המשתמש של האפליקציה.
לדוגמאות מפורטות יותר, ראה את PocketBase רשומות API תיעוד או תיעוד ה-API שנוצר ב"ממשק ממשק מנהל > אוספים > תצוגה מקדימה של ממשק API". אתה אמור להיות מסוגל לגשת לרשימה, להציג, ליצור, לעדכן, למחוק ולתיעוד בזמן אמת עבור האוסף שלך.
מדוע כדאי להשתמש ב-PocketBase
PocketBase הוא ה-backend הטוב ביותר עבור פרויקטים קטנים עד בינוניים. זה דורש הגדרה מינימלית וקל לשימוש. הוא מציע שני SDK של לקוח - JavaScript SDK ו-Dart SDK - ואתה יכול להשתמש בו ביישומי אינטרנט וניידים.
PocketBase גם מתארח בעצמו, ואתה יכול לארח אותו בשרת מקומי או ב-VPS. למרות שהוא אינו תומך בפונקציות ענן, אתה יכול להשתמש בו כמסגרת Go וליצור אפליקציה משלך עם היגיון עסקי מותאם אישית.