PocketBase je open-source backend sestávající z vestavěné databáze SQLite s ověřováním dat, předplatnými v reálném čase a snadno použitelným REST API. Nabízí také ověřování a ukládání souborů pro mediální soubory.
PocketBase je ideální pro projekty, pro které byste raději nevytvářeli backend z důvodu časových omezení nebo pohodlí, protože je zcela přenosný a vyžaduje minimální nastavení. Integruje se také s populárními technologiemi jako Vue, Svelte, React, Angular a Flutter.
Služby poskytované společností PocketBase
PocketBase poskytuje většinu služeb nabízených jinými backendovými poskytovateli, jako je SupaBase.
- SQLite databáze: PocketBase obsahuje vestavěnou databázi SQLite. Tím se liší od ostatních poskytovatelů backendu, kteří používají větší databáze jako PostgreSQL nebo MySQL. Díky použití SQLite je PocketBase lehčí. Můžete se také přihlásit k odběru databázových událostí v reálném čase prostřednictvím rozhraní API.
- Autentizace: PocketBase podporuje ověřování e-mailem/heslem a Ověření OAuth2 přes Facebook, Google, GitLab a GitHub.
- Ukládání souborů: Fotografie, audio a video soubory můžete nahrávat do místního úložiště nebo do S3 bucketu pomocí PocketBase.
- Admin panel: Panel správce umožňuje vytvářet a spravovat kolekce v databázi. Můžete také nahrávat soubory, zobrazovat soubory protokolu a konfigurovat nastavení pro odesílání e-mailů,
Podle dokumentů může PocketBase snadno obsluhovat 10 000+ souběžných a trvalých v reálném čase připojení na 6 virtuálních privátních serverech, což z něj činí dostupnou volbu backendu pro malé a střední podniky aplikací.
Všimněte si, že PocketBase měří pouze svisle. To znamená, že musíte přidat více CPU a RAM, abyste zvýšili výpočetní výkon. Pokud máte velkou aplikaci, zvažte a poskytovatel backendu, jako je Firebase který umožňuje horizontální měřítko.
Začínáme s PocketBase
V současné době PocketBase poskytuje dvě sady SDK:
- Sada JavaScript SDK, kterou můžete použít s frameworky JavaScript, jako jsou Svelte, React, Vue a Angular.
- Dart SDK pro Aplikace Flutter.
Nejjednodušší způsob, jak začít, je stáhněte si PocketBase. Existuje několik odkazů, takže si stáhněte ten, který je kompatibilní s vaším prostředím.
Jakmile si ji stáhnete, rozbalte a přejděte do složky pocketbase. Poté spusťte tento příkaz v terminálu:
./pocketbase sloužit
Tento příkaz by měl spustit webový server na těchto trasách.
- Server: http://127.0.0.1:8090/
- REST API: http://127.0.0.1:8090/api/
- Uživatelské rozhraní správce: http://127.0.0.1:8090/_/
Přejděte na http://127.0.0.1:8090/_/ URL k vytvoření první sbírky pomocí řídicího panelu správce.
Vytvoření kolekce v PocketBase
Při prvním otevření uživatelského rozhraní správce se zobrazí výzva k zadání e-mailové adresy a hesla pro vytvoření účtu správce.
Takto vypadá uživatelské rozhraní správce:
Kliknutím na Nová kolekce tlačítko v uživatelském rozhraní správce otevře panel sbírky, do kterého můžete vyplnit podrobnosti a vytvořit novou sbírku.
Takto vytvoříte sbírku nazvanou todos skládající se z názvu a vyplněných polí:
Sbírka může být buď základní, nebo auth sbírka. Základní kolekce je výchozí typ kolekce a můžete ji použít pro jakýkoli typ dat. Kolekce ověřování obsahuje další pole pro správu uživatelů, jako je uživatelské jméno, e-mail a ověřeno.
K vytvoření kolekce nemusíte používat uživatelské rozhraní pro správu; můžete jej vytvořit pomocí webového rozhraní API. Dokumenty PocketBase poskytnout příklady specifické pro sadu SDK, jak vytvářet a spravovat kolekce prostřednictvím rozhraní API. Kolekce můžete vytvářet, zobrazovat, aktualizovat, odstraňovat nebo importovat.
Použití PocketBase v aplikaci React
JavaScript SDK umožňuje interakci s PocketBase z projektu React.
Chcete-li pokračovat, začněte tím vytvoření projektu React.
Poté nainstalujte PocketBase JavaScript SDK do svého projektu React prostřednictvím npm:
npm install pocketbase --save
Dále do app.js importujte PocketBase a inicializujte ji.
import PocketBase z'pocketbase';
konst pb = Nový PocketBase(' http://127.0.0.1:8090');
Abyste ilustrovali, jak PocketBase integruje React, vytvoříte pomocné funkce pro úkolovou aplikaci. Tyto funkce budou vytvářet, aktualizovat, načítat a odstraňovat položky.
Vytvořte položku úkolu
V app.js vytvořte funkci s názvem addTodo.
konst addTodo = asynchronní (todo) => {
Snaž se {
konst záznam = čekatčekat pb.collection("todos").vytvořit (todo);
vrátit se záznam;
} chytit (chyba) {
vrátit se { chyba: chybové hlášení };
}
};
Tato funkce přidá nový záznam do kolekce úkolů.
Aktualizujte položku úkolu
Chcete-li aktualizovat záznam v kolekci úkolů, vytvořte funkci nazvanou updateTodo a použijte metodu aktualizace.
konst updateTodo = asynchronní (id_záznamu, úkol) => {
Snaž se {
konst záznam = čekat pb.collection("todos").update (id_záznamu, úkol);
vrátit se záznam;
} chytit (chyba) {
vrátit se { chyba: chybové hlášení };
}
};
Funkce updateTodo najde úkol na základě ID záznamu a aktualizuje ho novými daty.
Smazat položku úkolu
V app.js vytvořte funkci s názvem deleteTodo, která odstraní záznam v kolekci úkolů.
konst deleteTodo = asynchronní (id_záznamu) => {
Snaž se {
čekat pb.collection("todos").delete (id_záznamu);
} chytit (chyba) {
vrátit se { chyba: chybové hlášení };
}
};
Získejte položku úkolu
Můžete načíst jeden úkol nebo všechny položky z kolekce.
Tato funkce načte jednu položku úkolu podle ID:
konst getTodo = asynchronní (id_záznamu) => {
Snaž se {
konst záznam = čekat pb.collection("todos").getOne (id_záznamu, {
rozšířit: "relField1,relField2.subRelField",
});
vrátit se záznam
} chytit (chyba) {
vrátit se { chyba: chybové hlášení };
}
};
Zatímco funkce níže načte všechny záznamy v kolekci úkolů:
konst getTodos = asynchronní (id_záznamu) => {
Snaž se {
konst záznamy = čekat pb
.sbírka("todos")
.getFullList(200 /* objem várky */, {
seřadit: "-vytvořený",
});
vrátit se evidence;
} chytit (chyba) {
vrátit se { chyba: chybové hlášení };
}
}
Tyto funkce můžete použít k vytvoření a aktualizaci uživatelského rozhraní aplikace.
Pro podrobnější příklady viz API pro záznamy PocketBase dokumentaci nebo vygenerovanou dokumentaci API v "Uživatelské rozhraní správce > Kolekce > Náhled API". Měli byste mít přístup k seznamu, prohlížet, vytvářet, aktualizovat, mazat a dokumentovat v reálném čase ke své sbírce.
Proč byste měli používat PocketBase
PocketBase je nejlepší backend pro malé až střední projekty. Vyžaduje minimální nastavení a snadno se používá. Nabízí dvě klientské sady SDK – JavaScript SDK a Dart SDK – a můžete ji použít ve webových a mobilních aplikacích.
PocketBase je také samohostitelná a můžete ji hostovat na místním serveru nebo VPS. I když nepodporuje cloudové funkce, můžete jej použít jako rámec Go a vytvořit si vlastní aplikaci s vlastní obchodní logikou.