A PocketBase egy nyílt forráskódú háttérrendszer, amely egy beágyazott SQLite adatbázisból, adatellenőrzéssel, valós idejű előfizetésekből és egy könnyen használható REST API-ból áll. Hitelesítést és fájltárolást is kínál a médiafájlokhoz.
A PocketBase tökéletes olyan projektekhez, amelyekhez nem szeretne háttérrendszert építeni sem az idő szűke, sem a kényelem miatt, mert teljesen hordozható, és minimális beállítást igényel. Olyan népszerű technológiákkal is integrálható, mint a Vue, Svelte, React, Angular és Flutter.
A PocketBase által nyújtott szolgáltatások
A PocketBase biztosítja a legtöbb olyan szolgáltatást, amelyet más háttérszolgáltatók, például a SupaBase kínálnak.
- SQLite adatbázis: A PocketBase beágyazott SQLite adatbázist tartalmaz. Ez eltér a többi háttérszolgáltatótól, amelyek nagyobb adatbázisokat használnak, mint például a PostgreSQL vagy a MySQL. Az SQLite használata könnyebbé teszi a PocketBase-t. Valós idejű adatbáziseseményekre is előfizethet egy API-n keresztül.
- Hitelesítés: A PocketBase támogatja az e-mail/jelszó hitelesítést, és OAuth2 hitelesítés Facebookon, Google-on, GitLabon és GitHubon keresztül.
- Fájltárolás: A PocketBase segítségével fényképeket, hang- és videofájlokat tölthet fel a helyi tárhelyre vagy egy S3 tárolóba.
- Rendszergazdai irányítópult: Az adminisztrátori irányítópult segítségével gyűjteményeket hozhat létre és kezelhet az adatbázisban. Feltölthet fájlokat, megtekintheti a naplófájlokat, és konfigurálhatja az e-mailek küldésének beállításait,
A dokumentumok szerint a PocketBase könnyen kiszolgálhat 10 000+ egyidejű és állandó, valós időben kapcsolatok 6 virtuális magánszerveren, így megfizethető háttérválasztás a kis és közepes felhasználók számára alkalmazások.
Vegye figyelembe, hogy a PocketBase csak függőlegesen skálázódik. Ez azt jelenti, hogy több CPU-t és RAM-ot kell hozzáadnia a feldolgozási teljesítmény növeléséhez. Ha nagy pályázata van, fontolja meg a háttérszolgáltató, mint a Firebase amely lehetővé teszi a vízszintes méretezést.
A PocketBase használatának első lépései
Jelenleg a PocketBase két SDK-t biztosít:
- JavaScript SDK, amelyet olyan JavaScript-keretrendszerekkel használhat, mint a Svelte, React, Vue és Angular.
- Dart SDK ehhez Flutter alkalmazások.
A legegyszerűbb módja annak, hogy elinduljon töltse le a PocketBase-t. Számos hivatkozás található, ezért mindenképpen azt töltse le, amelyik kompatibilis a környezetével.
Miután letöltötte, bontsa ki, és navigáljon a pocketbase mappába. Ezután futtassa ezt a parancsot egy terminálon:
./pocketbase szolgál
Ez a parancs elindít egy webszervert ezeken az útvonalakon.
- Szerver: http://127.0.0.1:8090/
- REST API: http://127.0.0.1:8090/api/
- Adminisztrációs felület: http://127.0.0.1:8090/_/
Navigáljon a http://127.0.0.1:8090/_/ URL az első gyűjtemény létrehozásához az adminisztrációs irányítópulton.
Gyűjtemény létrehozása a PocketBase-ben
Amikor először nyitja meg az adminisztrátori felhasználói felületet, az e-mail címet és jelszót kér a rendszergazdai fiók létrehozásához.
Így néz ki az adminisztrációs felület:
Kattintson a Új kollekció gomb az adminisztrációs felületen megnyit egy gyűjteménypanelt, amelyet kitölthet a részletekkel új gyűjtemény létrehozásához.
Így hozhat létre egy címből és kitöltött mezőkből álló todos nevű gyűjteményt:
A gyűjtemény lehet alap- vagy hitelesítő gyűjtemény. Az alapgyűjtemény az alapértelmezett gyűjteménytípus, amelyet bármilyen típusú adathoz használhat. A hitelesítési gyűjtemény extra mezőket tartalmaz a felhasználók kezeléséhez, mint például a felhasználónév, az e-mail cím és az ellenőrzött.
Gyűjtemény létrehozásához nem szükséges az adminisztrátori felületet használnia; létrehozhat egyet a Web API segítségével. PocketBase dokumentumok SDK-specifikus példákat adjon a gyűjtemények API-n keresztüli létrehozására és kezelésére. Gyűjteményeket hozhat létre, tekinthet meg, frissíthet, törölhet vagy importálhat.
A PocketBase használata React alkalmazásban
A JavaScript SDK lehetővé teszi a PocketBase-sel való interakciót egy React projektből.
A követéshez kezdje el React projekt létrehozása.
Ezután telepítse a PocketBase JavaScript SDK-t React projektjébe npm-en keresztül:
npm install pocketbase --save
Ezután az app.js-ben importálja a PocketBase-t, és inicializálja.
import PocketBase tól től'zsebbázis';
const pb = új PocketBase(' http://127.0.0.1:8090');
Annak szemléltetésére, hogy a PocketBase hogyan integrálja a Reactot, létrehozza a segédfunkciókat egy teendő alkalmazáshoz. Ezek a funkciók elemeket hoznak létre, frissítenek, visszakeresnek és törölnek.
Hozzon létre egy teendőt
Az app.js fájlban hozzon létre egy addTodo nevű függvényt.
const addTodo = async (teendő) => {
próbáld ki {
const rekord = várjavárja pb.collection("todos").create (todo);
Visszatérés rekord;
} fogás (hiba) {
Visszatérés { hiba: hiba üzenet };
}
};
Ez a funkció egy új rekordot ad a todos gyűjteményhez.
Feladatelem frissítése
A teendőgyűjteményben lévő rekord frissítéséhez hozzon létre egy updateTodo nevű függvényt, és használja a frissítési módszert.
const updateTodo = async (rekord_azonosító, teendő) => {
próbáld ki {
const rekord = várja pb.collection("todos").update (record_id, todo);
Visszatérés rekord;
} fogás (hiba) {
Visszatérés { hiba: hiba üzenet };
}
};
Az updateTodo funkció a rekordazonosító alapján megkeresi a teendőt, és frissíti az új adatokkal.
Teendőelem törlése
Az app.js fájlban hozzon létre egy deleteTodo nevű függvényt, amely töröl egy rekordot a teendőgyűjteményből.
const deleteTodo = async (rekord_azonosító) => {
próbáld ki {
várja pb.collection("todos").delete (record_id);
} fogás (hiba) {
Visszatérés { hiba: hiba üzenet };
}
};
Szerezzen le egy Todo elemet
Lekérhet egyetlen teendőt vagy a gyűjtemény összes elemét.
Ez a függvény egyetlen teendőt kér le az azonosító alapján:
const getTodo = async (rekord_azonosító) => {
próbáld ki {
const rekord = várja pb.collection("todos").getOne (record_id, {
kiterjed: "relField1,relField2.subRelField",
});
Visszatérés rekord
} fogás (hiba) {
Visszatérés { hiba: hiba üzenet };
}
};
Míg az alábbi funkció a teendőgyűjtemény összes rekordját lekéri:
const getTodos = async (rekord_azonosító) => {
próbáld ki {
const rekordok = várja pb
.Gyűjtemény("todos")
.getFullList(200 /* csomó méret */, {
fajta: "-létrehozva",
});
Visszatérés feljegyzések;
} fogás (hiba) {
Visszatérés { hiba: hiba üzenet };
}
}
Ezekkel a funkciókkal létrehozhatja és frissítheti az alkalmazás felhasználói felületét.
Részletesebb példákért lásd a PocketBase rekordok API dokumentációt vagy a generált API-dokumentációt az „Admin UI > Collections > API Preview” részben. El kell érnie a listát, megtekintheti, létrehozhatja, frissítheti, törölheti és a gyűjtemény valós idejű dokumentációját.
Miért érdemes a PocketBase-t használni?
A PocketBase a legjobb háttérrendszer kis és közepes projektekhez. Minimális beállítást igényel, és könnyen használható. Két kliens SDK-t kínál – egy JavaScript SDK-t és egy Dart SDK-t –, és használhatja webes és mobilalkalmazásokban.
A PocketBase önkiszolgáló is, és helyi szerveren vagy VPS-en is tárolhatja. Bár nem támogatja a felhőfunkciókat, használhatja Go keretrendszerként, és létrehozhatja saját alkalmazását egyéni üzleti logikával.