در PocketBase، از آنچه که هست، تا اینکه چگونه میتوانید در عرض چند دقیقه از آن استفاده کنید، پایینتر را دریافت کنید.
PocketBase یک باطن منبع باز است که از یک پایگاه داده SQLite تعبیه شده با اعتبارسنجی داده ها، اشتراک های بلادرنگ و یک REST API با کاربری آسان تشکیل شده است. همچنین احراز هویت و ذخیره سازی فایل را برای فایل های رسانه ای ارائه می دهد.
PocketBase برای پروژههایی که ترجیح میدهید به دلیل محدودیتهای زمانی یا راحتی برای آنها یک Backend ایجاد نکنید بسیار مناسب است، زیرا کاملاً قابل حمل است و به حداقل تنظیمات نیاز دارد. همچنین با فناوری های محبوبی مانند Vue، Svelte، React، Angular و Flutter ادغام می شود.
خدمات ارائه شده توسط PocketBase
PocketBase بیشتر خدمات ارائه شده توسط سایر ارائه دهندگان باطن مانند SupaBase را ارائه می دهد.
- پایگاه داده SQLite: PocketBase شامل یک پایگاه داده SQLite تعبیه شده است. این با سایر ارائه دهندگان باطن که از پایگاه داده های بزرگتری مانند PostgreSQL یا MySQL استفاده می کنند متفاوت است. استفاده از SQLite باعث می شود PocketBase سبک تر شود. همچنین می توانید از طریق یک API در رویدادهای پایگاه داده بلادرنگ مشترک شوید.
- احراز هویت: PocketBase از احراز هویت ایمیل/رمز عبور و احراز هویت OAuth2 از طریق Facebook، Google، GitLab و GitHub پشتیبانی می کند.
- ذخیرهسازی فایل: میتوانید عکسها، فایلهای صوتی و ویدیویی را با استفاده از PocketBase در حافظه محلی یا یک سطل S3 آپلود کنید.
- داشبورد مدیریت: داشبورد مدیریت به شما امکان می دهد مجموعه ها را در پایگاه داده ایجاد و مدیریت کنید. همچنین میتوانید فایلها را آپلود کنید، فایلهای گزارش را مشاهده کنید، و تنظیمات ارسال ایمیل را پیکربندی کنید.
با توجه به اسناد، PocketBase می تواند به راحتی بیش از 10000 اتصال همزمان و دائمی را در 6 سرور خصوصی مجازی ارائه دهد که آن را به یک انتخاب پشتیبان مقرون به صرفه برای برنامه های کوچک تا متوسط تبدیل می کند.
توجه داشته باشید که PocketBase فقط به صورت عمودی مقیاس می شود. این بدان معناست که برای افزایش قدرت پردازش باید CPU و RAM بیشتری اضافه کنید. اگر برنامه بزرگی دارید، یک ارائه دهنده باطن مانند Firebase را در نظر بگیرید که امکان مقیاس افقی را فراهم می کند.
شروع کار با PocketBase
در حال حاضر، PocketBase دو SDK ارائه می دهد:
- یک SDK جاوا اسکریپت که می توانید با فریم ورک های جاوا اسکریپت مانند Svelte، React، Vue و Angular استفاده کنید.
- Dart SDK برای برنامههای Flutter.
ساده ترین راه برای شروع، دانلود PocketBase است. چندین لینک وجود دارد، پس حتما لینکی را دانلود کنید که با محیط شما سازگار است.
هنگامی که آن را دانلود کردید، آن را استخراج کرده و به پوشه pocketbase بروید. سپس این دستور را در ترمینال اجرا کنید:
./pocketbase serve
این دستور باید یک وب سرور را در این مسیرها راه اندازی کند.
- سرور: 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 متشکل از یک عنوان و فیلدهای تکمیل شده آمده است:
یک مجموعه می تواند یک مجموعه پایه یا یک مجموعه معتبر باشد. مجموعه پایه نوع مجموعه پیش فرض است و می توانید از آن برای هر نوع داده ای استفاده کنید. مجموعه احراز هویت شامل فیلدهای اضافی برای مدیریت کاربران است، مانند نام کاربری، ایمیل، و تأیید شده.
برای ایجاد یک مجموعه نیازی به استفاده از رابط کاربری مدیر نیست. شما می توانید با استفاده از Web API ایجاد کنید. اسناد PocketBase نمونههای مخصوص SDK را از نحوه ایجاد و مدیریت مجموعهها از طریق API ارائه میکنند. می توانید مجموعه ها را ایجاد، مشاهده، به روز رسانی، حذف یا وارد کنید.
استفاده از PocketBase در یک برنامه React
جاوا اسکریپت SDK به شما امکان می دهد از پروژه React با PocketBase تعامل داشته باشید.
برای پیگیری، با ایجاد یک پروژه React شروع کنید.
سپس، PocketBase JavaScript SDK را در پروژه React خود از طریق npm نصب کنید:
npm install pocketbase --save
سپس، در app.js، PocketBase را وارد کرده و مقداردهی اولیه کنید.
import PocketBase from 'pocketbase';
const pb = new PocketBase('http://127.0.0.1:8090');
برای نشان دادن اینکه PocketBase چگونه React را ادغام می کند، توابع کمکی را برای یک برنامه کاری ایجاد می کنید. این توابع موارد را ایجاد، به روز رسانی، بازیابی و حذف می کنند.
یک مورد Todo ایجاد کنید
در app.js یک تابع به نام addTodo ایجاد کنید.
const addTodo = async (todo) => {
try {
const record = await await pb.collection("todos").create(todo);
return record;
} catch (error) {
return { error: error.message };
}
};
این تابع یک رکورد جدید در مجموعه todos اضافه می کند.
یک مورد Todo را به روز کنید
برای به روز رسانی یک رکورد در مجموعه todo، تابعی به نام updateTodo ایجاد کنید و از روش به روز رسانی استفاده کنید.
const updateTodo = async (record_id, todo) => {
try {
const record = await pb.collection("todos").update(record_id, todo);
return record;
} catch (error) {
return { error: error.message };
}
};
تابع updateTodo مورد کار را بر اساس شناسه رکورد پیدا می کند و آن را با داده های جدید به روز می کند.
یک مورد Todo را حذف کنید
در app.js، یک تابع به نام deleteTodo ایجاد کنید که رکوردی را در مجموعه todo حذف می کند.
const deleteTodo = async (record_id) => {
try {
await pb.collection("todos").delete(record_id);
} catch (error) {
return { error: error.message };
}
};
یک مورد Todo را بازیابی کنید
شما می توانید یک مورد تک کار یا همه موارد را از مجموعه بازیابی کنید.
این تابع یک مورد تکلیفی را با شناسه بازیابی می کند:
const getTodo = async (record_id) => {
try {
const record = await pb.collection("todos").getOne(record_id, {
expand: "relField1,relField2.subRelField",
});
return record
} catch (error) {
return { error: error.message };
}
};
در حالی که تابع زیر تمام رکوردهای مجموعه todo را بازیابی می کند:
const getTodos = async (record_id) => {
try {
const records = await pb
.collection("todos")
.getFullList(200 /* batch size */, {
sort: "-created",
});
return records;
} catch (error) {
return { error: error.message };
}
}
می توانید از این توابع برای ایجاد و به روز رسانی رابط کاربری برنامه استفاده کنید.
برای مثالهای دقیقتر، به مستندات API رکوردهای PocketBase یا مستندات API ایجاد شده در «ادمین UI > مجموعهها > پیشنمایش API» مراجعه کنید. شما باید بتوانید به فهرست، مشاهده، ایجاد، به روز رسانی، حذف و مستندات بلادرنگ مجموعه خود دسترسی داشته باشید.
چرا باید از PocketBase استفاده کنید
PocketBase بهترین باطن برای پروژه های کوچک تا متوسط است. به حداقل تنظیمات نیاز دارد و استفاده از آن آسان است. دو SDK کلاینت ارائه می دهد – JavaScript SDK و Dart SDK – و می توانید از آن در برنامه های وب و تلفن همراه استفاده کنید.
PocketBase همچنین خود میزبان است و شما می توانید آن را بر روی یک سرور محلی یا یک VPS میزبانی کنید. در حالی که از توابع ابری پشتیبانی نمی کند، می توانید از آن به عنوان یک چارچوب Go استفاده کنید و برنامه خود را با منطق تجاری سفارشی ایجاد کنید.