القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة. اقرأ أكثر.

PocketBase هي واجهة خلفية مفتوحة المصدر تتكون من قاعدة بيانات SQLite مضمنة مع التحقق من صحة البيانات والاشتراكات في الوقت الفعلي وواجهة برمجة تطبيقات REST سهلة الاستخدام. كما يوفر المصادقة وتخزين الملفات لملفات الوسائط.

تعتبر PocketBase مثالية للمشاريع التي تفضل عدم إنشاء واجهة خلفية لها إما بسبب قيود الوقت أو الراحة لأنها محمولة تمامًا وتتطلب الحد الأدنى من الإعداد. كما أنه يتكامل مع التقنيات الشائعة مثل Vue و Svelte و React و Angular و Flutter.

الخدمات التي تقدمها PocketBase

يوفر PocketBase معظم الخدمات التي يقدمها موفرو الخلفية الآخرون مثل SupaBase.

  • قاعدة بيانات سكليتي: يتضمن PocketBase قاعدة بيانات SQLite مضمنة. هذا يختلف عن موفري الواجهة الخلفية الآخرين الذين يستخدمون قواعد بيانات أكبر مثل PostgreSQL أو MySQL. استخدام SQLite يجعل PocketBase أكثر خفة. يمكنك أيضًا الاشتراك في أحداث قاعدة البيانات في الوقت الفعلي من خلال واجهة برمجة التطبيقات (API).
  • المصادقة: يدعم PocketBase مصادقة البريد الإلكتروني / كلمة المرور ، و
    instagram viewer
    مصادقة OAuth2 عبر Facebook و Google و GitLab و GitHub.
  • ملف التخزين: يمكنك تحميل الصور وملفات الصوت والفيديو إلى وحدة التخزين المحلية أو حاوية S3 باستخدام PocketBase.
  • لوحة تحكم المشرف: تتيح لك لوحة تحكم المسؤول إنشاء وإدارة المجموعات في قاعدة البيانات. يمكنك أيضًا تحميل الملفات وعرض ملفات السجل وتهيئة الإعداد لإرسال رسائل البريد الإلكتروني ،

وفقًا للمستندات ، يمكن لـ PocketBase أن تخدم بسهولة أكثر من 10000 في الوقت الفعلي المتزامن والمستمر اتصالات على 6 خوادم افتراضية خاصة مما يجعلها خيارًا خلفيًا ميسور التكلفة للشركات الصغيرة والمتوسطة التطبيقات.

لاحظ أن PocketBase يتدرج عموديًا فقط. هذا يعني أنك بحاجة إلى إضافة المزيد من وحدة المعالجة المركزية وذاكرة الوصول العشوائي لزيادة قوة المعالجة. إذا كان لديك تطبيق كبير ، ففكر في ملف مزود الواجهة الخلفية مثل Firebase الذي يسمح بالقياس الأفقي.

الشروع في العمل مع PocketBase

حاليًا ، يوفر PocketBase اثنين من حزم SDK:

  • JavaScript SDK يمكنك استخدامه مع أطر عمل JavaScript مثل Svelte و React و Vue و Angular.
  • A Dart SDK لـ تطبيقات الرفرفة.

أسهل طريقة للبدء هي تنزيل 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/_/ URL لإنشاء مجموعتك الأولى باستخدام لوحة تحكم المسؤول.

إنشاء مجموعة في PocketBase

في المرة الأولى التي تفتح فيها واجهة مستخدم المسؤول ، سيطلب منك عنوان بريد إلكتروني وكلمة مرور لإنشاء حساب مسؤول.

إليك ما تبدو عليه واجهة المستخدم الإدارية:

النقر فوق ملف مجموعة جديدة الزر الموجود في واجهة المستخدم الإدارية سيفتح لوحة مجموعة يمكنك ملؤها بالتفاصيل لإنشاء مجموعة جديدة.

إليك كيفية إنشاء مجموعة تسمى todos تتكون من عنوان وحقول مكتملة:

يمكن أن تكون المجموعة إما مجموعة أساسية أو مجموعة مصادقة. المجموعة الأساسية هي نوع المجموعة الافتراضي ويمكنك استخدامها لأي نوع من البيانات. تحتوي مجموعة المصادقة على حقول إضافية لإدارة المستخدمين ، مثل اسم المستخدم والبريد الإلكتروني والتحقق منه.

لا تحتاج إلى استخدام واجهة مستخدم المسؤول لإنشاء مجموعة ؛ يمكنك إنشاء واحد باستخدام Web API. مستندات PocketBase تقديم أمثلة خاصة بـ SDK حول كيفية إنشاء المجموعات وإدارتها عبر واجهة برمجة التطبيقات. يمكنك إنشاء مجموعات أو عرضها أو تحديثها أو حذفها أو استيرادها.

استخدام PocketBase في تطبيق React

تسمح لك JavaScript SDK بالتفاعل مع PocketBase من مشروع React.

للمتابعة ، ابدأ بـ إنشاء مشروع React.

بعد ذلك ، قم بتثبيت PocketBase JavaScript SDK في مشروع React الخاص بك عبر npm:

npm تثبيت pocketbase - حفظ

بعد ذلك ، في app.js ، قم باستيراد PocketBase وتهيئته.

يستورد قاعدة الجيب من"قاعدة الجيب";
مقدار ثابت pb = جديد PocketBase (' http://127.0.0.1:8090');

لتوضيح كيفية تكامل PocketBase مع React ، ستنشئ الوظائف المساعدة لتطبيق مهام. ستقوم هذه الوظائف بإنشاء العناصر وتحديثها واستردادها وحذفها.

قم بإنشاء عنصر تودو

في app.js ، أنشئ وظيفة تسمى addTodo.

مقدار ثابت addTodo = غير متزامن (todo) => {
يحاول {
مقدار ثابت سجل = انتظرانتظر pb.collection ("todos") .create (todo) ؛
يعود سِجِلّ؛
 } يمسك (خطأ) {
يعود { خطأ: رسالة خطأ }؛
 }
};

تضيف هذه الوظيفة سجلاً جديدًا في مجموعة todos.

تحديث عنصر تودو

لتحديث سجل في مجموعة todo ، قم بإنشاء وظيفة تسمى updateTodo واستخدم طريقة التحديث.

مقدار ثابت updateTodo = غير متزامن (record_id، todo) => {
يحاول {
مقدار ثابت سجل = انتظر pb.collection ("todos") .update (record_id، todo) ؛
يعود سِجِلّ؛
 } يمسك (خطأ) {
يعود { خطأ: رسالة خطأ }؛
 }
};

تبحث وظيفة updateTodo عن عنصر المهام بناءً على معرف السجل وتقوم بتحديثه بالبيانات الجديدة.

احذف عنصر Todo

في app.js ، أنشئ وظيفة تسمى deleteTodo تحذف سجلًا في مجموعة todo.

مقدار ثابت deleteTodo = غير متزامن (record_id) => {
يحاول {
انتظر pb.collection ("todos") .delete (record_id) ؛
 } يمسك (خطأ) {
يعود { خطأ: رسالة خطأ }؛
 }
};

استرجع عنصر Todo

يمكنك استرداد عنصر مهام واحد أو كل العناصر من المجموعة.

تسترد هذه الوظيفة عنصر مهام واحدًا عن طريق المعرف:

مقدار ثابت getTodo = غير متزامن (record_id) => {
يحاول {
مقدار ثابت سجل = انتظر pb.collection ("todos") .getOne (record_id، {
يوسع: "relField1 ، relField2.subRelField",
});
يعود سِجِلّ
 } يمسك (خطأ) {
يعود { خطأ: رسالة خطأ }؛
 }
};

بينما تقوم الوظيفة أدناه باسترداد جميع السجلات في مجموعة todo:

مقدار ثابت getTodos = غير متزامن (record_id) => {
يحاول {
مقدار ثابت السجلات = انتظر الرصاص
.مجموعة("todos")
.getFullList(200 /* حجم الدفعة */, {
نوع: "-مخلوق",
});
يعود السجلات.
} يمسك (خطأ) {
يعود { خطأ: رسالة خطأ }؛
}
}

يمكنك استخدام هذه الوظائف لإنشاء وتحديث واجهة المستخدم الخاصة بالتطبيق.

لمزيد من الأمثلة التفصيلية ، راجع PocketBase يسجل API الوثائق أو وثائق واجهة برمجة التطبيقات التي تم إنشاؤها في "واجهة مستخدم المسؤول> المجموعات> معاينة واجهة برمجة التطبيقات". يجب أن تكون قادرًا على الوصول إلى القائمة وعرض وإنشاء وتحديث وحذف ووثائق الوقت الفعلي لمجموعتك.

لماذا يجب عليك استخدام PocketBase

PocketBase هو أفضل واجهة خلفية للمشروعات الصغيرة والمتوسطة. يتطلب الحد الأدنى من الإعداد وسهل الاستخدام. وهي توفر اثنين من حزم SDK للعميل - JavaScript SDK و Dart SDK - ويمكنك استخدامها في تطبيقات الويب والجوال.

PocketBase قابل للاستضافة الذاتية أيضًا ، ويمكنك استضافته على خادم محلي أو VPS. على الرغم من أنه لا يدعم وظائف السحابة ، يمكنك استخدامه كإطار عمل Go وإنشاء تطبيق خاص بك باستخدام منطق عمل مخصص.