PocketBase er en åpen kildekode-backend som består av en innebygd SQLite-database med datavalidering, sanntidsabonnement og en brukervennlig REST API. Den tilbyr også autentisering og fillagring for mediefiler.
PocketBase er perfekt for prosjekter du helst ikke vil bygge en backend for, enten på grunn av tidsbegrensninger eller bekvemmelighet, fordi den er fullstendig bærbar og krever minimalt med oppsett. Den integreres også med populære teknologier som Vue, Svelte, React, Angular og Flutter.
Tjenester levert av PocketBase
PocketBase tilbyr de fleste tjenestene som tilbys av andre backend-leverandører som SupaBase.
- SQLite database: PocketBase inkluderer en innebygd SQLite-database. Dette skiller seg fra andre backend-leverandører som bruker større databaser som PostgreSQL eller MySQL. Bruken av SQLite gjør PocketBase lettere. Du kan også abonnere på databasehendelser i sanntid gjennom en API.
- Autentisering: PocketBase støtter e-post-/passordautentisering, og OAuth2-autentisering via Facebook, Google, GitLab og GitHub.
- Fillagring: Du kan laste opp bilder, lyd- og videofiler til lokal lagring eller en S3-bøtte ved hjelp av PocketBase.
- Admin dashbord: Admin-dashbordet lar deg opprette og administrere samlinger i databasen. Du kan også laste opp filer, se loggfiler og konfigurere innstillingen for sending av e-post,
I følge dokumentene kan PocketBase enkelt betjene 10 000+ samtidige og vedvarende sanntid tilkoblinger på 6 virtuelle private servere som gjør det til et rimelig backend-valg for små til mellomstore applikasjoner.
Merk at PocketBase kun skaleres vertikalt. Dette betyr at du må legge til mer CPU og RAM for å øke prosessorkraften. Hvis du har en stor søknad, vurder en backend-leverandør som Firebase som tillater horisontal skalering.
Komme i gang med PocketBase
For øyeblikket tilbyr PocketBase to SDK-er:
- En JavaScript SDK som du kan bruke med JavaScript-rammeverk som Svelte, React, Vue og Angular.
- En Dart SDK for Fladder-apper.
Den enkleste måten å komme i gang på er å last ned PocketBase. Det er flere lenker, så sørg for å laste ned den som er kompatibel med miljøet ditt.
Når du har lastet det ned, pakk ut og naviger til pocketbase-mappen. Kjør deretter denne kommandoen i en terminal:
./pocketbase serve
Denne kommandoen skal starte en webserver på disse rutene.
- Server: http://127.0.0.1:8090/
- REST API: http://127.0.0.1:8090/api/
- Administrasjonsgrensesnitt: http://127.0.0.1:8090/_/
Naviger til http://127.0.0.1:8090/_/ URL for å lage din første samling ved hjelp av admin-dashbordet.
Opprette en samling i PocketBase
Første gang du åpner administrasjonsgrensesnittet, vil det be om en e-postadresse og passord for å opprette en administratorkonto.
Slik ser admin-grensesnittet ut:
Ved å klikke på Ny kolleksjon knappen i administrasjonsgrensesnittet åpner et samlingspanel du kan fylle ut med detaljer for å opprette en ny samling.
Slik lager du en samling kalt todos som består av en tittel og utfylte felt:
En samling kan enten være en base- eller auth-samling. En basissamling er standard innsamlingstype, og du kan bruke den for alle typer data. En autentiseringssamling inneholder ekstra felt for å administrere brukere, som brukernavn, e-post og bekreftet.
Du trenger ikke å bruke administrasjonsgrensesnittet for å opprette en samling; du kan lage en ved å bruke Web API. PocketBase-dokumenter gi SDK-spesifikke eksempler på hvordan du oppretter og administrerer samlinger via API. Du kan opprette, vise, oppdatere, slette eller importere samlinger.
Bruke PocketBase i en React-applikasjon
JavaScript SDK lar deg samhandle med PocketBase fra et React-prosjekt.
For å følge med, start med opprette et React-prosjekt.
Installer deretter PocketBase JavaScript SDK i React-prosjektet ditt via npm:
npm install pocketbase --save
Deretter, i app.js, importer PocketBase og initialiser den.
import PocketBase fra'pocketbase';
konst pb = ny PocketBase(' http://127.0.0.1:8090');
For å illustrere hvordan PocketBase integrerer React, skal du lage hjelpefunksjonene for en gjøremålsapplikasjon. Disse funksjonene vil opprette, oppdatere, hente og slette elementer.
Lag et gjøremål
I app.js oppretter du en funksjon som heter addTodo.
konst addTodo = asynkron (todo) => {
prøve {
konst rekord = avventeavvente pb.collection("todos").skape (todo);
komme tilbake ta opp;
} å fange (feil) {
komme tilbake { feil: feilmelding };
}
};
Denne funksjonen legger til en ny rekord i todos-samlingen.
Oppdater et gjøremål
For å oppdatere en post i todo-samlingen, opprette en funksjon kalt updateTodo og bruk oppdateringsmetoden.
konst updateTodo = asynkron (record_id, todo) => {
prøve {
konst rekord = avvente pb.collection("todos").oppdatering (record_id, todo);
komme tilbake ta opp;
} å fange (feil) {
komme tilbake { feil: feilmelding };
}
};
UpdateTodo-funksjonen finner gjøremålet basert på post-ID og oppdaterer det med de nye dataene.
Slett et gjøremål
I app.js oppretter du en funksjon kalt deleteTodo som sletter en post i todo-samlingen.
konst deleteTodo = asynkron (record_id) => {
prøve {
avvente pb.collection("todos").delete (record_id);
} å fange (feil) {
komme tilbake { feil: feilmelding };
}
};
Hent et gjøremål
Du kan hente ett enkelt gjøremål eller alle elementene fra samlingen.
Denne funksjonen henter ett enkelt gjøremål etter id:
konst getTodo = asynkron (record_id) => {
prøve {
konst rekord = avvente pb.collection("todos").getOne (record_id, {
utvide: "relField1,relField2.subRelField",
});
komme tilbake ta opp
} å fange (feil) {
komme tilbake { feil: feilmelding };
}
};
Mens funksjonen nedenfor vil hente alle postene i gjøremålssamlingen:
konst getTodos = asynkron (record_id) => {
prøve {
konst poster = avvente pb
.samling("todos")
.getFullList(200 /* Partistørrelse, Gruppestørrelse */, {
sortere: "-skapt",
});
komme tilbake poster;
} å fange (feil) {
komme tilbake { feil: feilmelding };
}
}
Du kan bruke disse funksjonene til å opprette og oppdatere applikasjonens brukergrensesnitt.
For mer detaljerte eksempler, se PocketBase records API dokumentasjon eller den genererte API-dokumentasjonen i "Admin UI > Collections > API Preview". Du skal ha tilgang til liste, se, opprette, oppdatere, slette og sanntidsdokumentasjonen for samlingen din.
Hvorfor du bør bruke PocketBase
PocketBase er den beste backend for små til mellomstore prosjekter. Den krever minimalt med oppsett og er enkel å bruke. Den tilbyr to klient-SDK-er – en JavaScript SDK og en Dart SDK – og du kan bruke den i nett- og mobilapplikasjoner.
PocketBase er også selvhostbar, og du kan være vert for den på en lokal server eller en VPS. Selv om den ikke støtter skyfunksjoner, kan du bruke den som et Go-rammeverk og lage din egen app med tilpasset forretningslogikk.