PocketBase är en öppen källkodsbackend som består av en inbäddad SQLite-databas med datavalidering, realtidsprenumerationer och ett lättanvänt REST API. Den erbjuder också autentisering och fillagring för mediefiler.
PocketBase är perfekt för projekt som du hellre inte vill bygga en backend för varken på grund av tidsbrist eller bekvämlighet eftersom det är helt portabelt och kräver minimal installation. Den integreras också med populära teknologier som Vue, Svelte, React, Angular och Flutter.
Tjänster som tillhandahålls av PocketBase
PocketBase tillhandahåller de flesta av de tjänster som erbjuds av andra backend-leverantörer som SupaBase.
- SQLite databas: PocketBase innehåller en inbäddad SQLite-databas. Detta skiljer sig från andra backend-leverantörer som använder större databaser som PostgreSQL eller MySQL. Användningen av SQLite gör PocketBase lättare. Du kan också prenumerera på databashändelser i realtid via ett API.
- Autentisering: PocketBase stöder e-post/lösenordsautentisering och OAuth2-autentisering via Facebook, Google, GitLab och GitHub.
- Fillagring: Du kan ladda upp foton, ljud- och videofiler till lokal lagring eller en S3-hink med PocketBase.
- Admin instrumentpanel: Admin-instrumentpanelen låter dig skapa och hantera samlingar i databasen. Du kan också ladda upp filer, visa loggfiler och konfigurera inställningen för att skicka e-post,
Enligt dokumenten kan PocketBase enkelt servera 10 000+ samtidiga och ihållande realtid anslutningar på 6 virtuella privata servrar vilket gör det till ett prisvärt backend-val för små till medelstora applikationer.
Observera att PocketBase endast skalas vertikalt. Detta innebär att du behöver lägga till mer CPU och RAM för att öka processorkraften. Om du har en stor ansökan, överväg en backend-leverantör som Firebase som tillåter horisontell skalning.
Komma igång med PocketBase
För närvarande tillhandahåller PocketBase två SDK: er:
- En JavaScript-SDK som du kan använda med JavaScript-ramverk som Svelte, React, Vue och Angular.
- En Dart SDK för Fladdrar appar.
Det enklaste sättet att komma igång är att ladda ner PocketBase. Det finns flera länkar, så se till att ladda ner den som är kompatibel med din miljö.
När du har laddat ner den, extrahera och navigera till pocketbase-mappen. Kör sedan detta kommando i en terminal:
./pocketbase serve
Detta kommando bör starta en webbserver vid dessa rutter.
- Server: http://127.0.0.1:8090/
- REST API: http://127.0.0.1:8090/api/
- Admin UI: http://127.0.0.1:8090/_/
Navigera till http://127.0.0.1:8090/_/ URL för att skapa din första samling med hjälp av administratörsinstrumentpanelen.
Skapa en samling i PocketBase
Första gången du öppnar administratörsgränssnittet kommer det att be om en e-postadress och ett lösenord för att skapa ett administratörskonto.
Så här ser administratörsgränssnittet ut:
Genom att klicka på Ny kollektion knappen i administratörsgränssnittet öppnar en samlingspanel som du kan fylla i med detaljer för att skapa en ny samling.
Så här skapar du en samling som heter todos som består av en titel och ifyllda fält:
En samling kan antingen vara en bas- eller autentiseringssamling. En bassamling är standardinsamlingstypen och du kan använda den för alla typer av data. En autentiseringssamling innehåller extra fält för att hantera användare, som användarnamn, e-post och verifierad.
Du behöver inte använda administratörsgränssnittet för att skapa en samling; du kan skapa en med hjälp av webb-API. PocketBase-dokument ge SDK-specifika exempel på hur man skapar och hanterar samlingar via API: et. Du kan skapa, visa, uppdatera, ta bort eller importera samlingar.
Använda PocketBase i en React-applikation
JavaScript SDK låter dig interagera med PocketBase från ett React-projekt.
För att följa med, börja med skapa ett React-projekt.
Installera sedan PocketBase JavaScript SDK i ditt React-projekt via npm:
npm installera pocketbase --save
Därefter, i app.js, importera PocketBase och initiera den.
importera PocketBase från'pocketbase';
konst pb = ny PocketBase(' http://127.0.0.1:8090');
För att illustrera hur PocketBase integrerar React, skapar du hjälpfunktionerna för en att göra-applikation. Dessa funktioner kommer att skapa, uppdatera, hämta och ta bort objekt.
Skapa ett att göra-objekt
Skapa en funktion som heter addTodo i app.js.
konst addTodo = asynkron (att göra) => {
Prova {
konst rekord = väntavänta pb.collection("todos").skapa (att göra);
lämna tillbaka spela in;
} fånga (fel) {
lämna tillbaka { fel: felmeddelande };
}
};
Denna funktion lägger till ett nytt rekord i todos-samlingen.
Uppdatera en uppgift
För att uppdatera en post i todo-samlingen, skapa en funktion som heter updateTodo och använd uppdateringsmetoden.
konst updateTodo = asynkron (record_id, todo) => {
Prova {
konst rekord = vänta pb.collection("todos").update (record_id, todo);
lämna tillbaka spela in;
} fånga (fel) {
lämna tillbaka { fel: felmeddelande };
}
};
UpdateTodo-funktionen hittar att göra-posten baserat på post-ID och uppdaterar den med nya data.
Ta bort ett uppgiftsobjekt
Skapa en funktion som heter deleteTodo i app.js som tar bort en post i att göra-samlingen.
konst raderaTodo = asynkron (record_id) => {
Prova {
vänta pb.collection("todos").delete (record_id);
} fånga (fel) {
lämna tillbaka { fel: felmeddelande };
}
};
Hämta en uppgift
Du kan hämta ett enda att göra-föremål eller alla föremål från samlingen.
Den här funktionen hämtar ett enda att göra-objekt efter id:
konst getTodo = asynkron (record_id) => {
Prova {
konst rekord = vänta pb.collection("todos").getOne (record_id, {
bygga ut: "relField1,relField2.subRelField",
});
lämna tillbaka spela in
} fånga (fel) {
lämna tillbaka { fel: felmeddelande };
}
};
Medan funktionen nedan kommer att hämta alla poster i att göra-samlingen:
konst getTodos = asynkron (record_id) => {
Prova {
konst rekord = vänta pb
.samling("todos")
.getFullList(200 /* satsstorlek */, {
sortera: "-skapad",
});
lämna tillbaka uppgifter;
} fånga (fel) {
lämna tillbaka { fel: felmeddelande };
}
}
Du kan använda dessa funktioner för att skapa och uppdatera programmets användargränssnitt.
För mer detaljerade exempel, se PocketBase records API dokumentation eller den genererade API-dokumentationen i "Admin UI > Collections > API Preview". Du bör kunna komma åt lista, visa, skapa, uppdatera, ta bort och realtidsdokumentationen för din samling.
Varför du bör använda PocketBase
PocketBase är den bästa backend för små till medelstora projekt. Det kräver minimal installation och är lätt att använda. Den erbjuder två klient-SDK: er – en JavaScript SDK och en Dart SDK – och du kan använda den i webb- och mobilapplikationer.
PocketBase är också självvärd, och du kan vara värd för den på en lokal server eller en VPS. Även om det inte stöder molnfunktioner, kan du använda det som ett Go-ramverk och skapa din egen app med anpassad affärslogik.