PocketBase er en open source-backend, der består af en indlejret SQLite-database med datavalidering, realtidsabonnementer og en letanvendelig REST API. Det tilbyder også godkendelse og fillagring til mediefiler.
PocketBase er perfekt til projekter, du helst ikke vil bygge en backend til, enten på grund af tidsbegrænsninger eller bekvemmelighed, fordi den er fuldstændig bærbar og kræver minimal opsætning. Den integreres også med populære teknologier som Vue, Svelte, React, Angular og Flutter.
Tjenester leveret af PocketBase
PocketBase leverer de fleste af de tjenester, der tilbydes af andre backend-udbydere som SupaBase.
- SQLite database: PocketBase inkluderer en indlejret SQLite-database. Dette adskiller sig fra andre backend-udbydere, der bruger større databaser som PostgreSQL eller MySQL. Brugen af SQLite gør PocketBase mere let. Du kan også abonnere på databasehændelser i realtid gennem en API.
- Godkendelse: PocketBase understøtter e-mail/adgangskodegodkendelse, og OAuth2-godkendelse via Facebook, Google, GitLab og GitHub.
- Fillagring: Du kan uploade fotos, lyd- og videofiler til lokal lagring eller en S3-bøtte ved hjælp af PocketBase.
- Admin dashboard: Admin-dashboardet lader dig oprette og administrere samlinger i databasen. Du kan også uploade filer, se logfiler og konfigurere indstillingerne for afsendelse af e-mails,
Ifølge dokumenterne kan PocketBase nemt betjene 10.000+ samtidige og vedvarende realtid forbindelser på 6 virtuelle private servere, hvilket gør det til et overkommeligt backend-valg for små til mellemstore applikationer.
Bemærk, at PocketBase kun skaleres lodret. Det betyder, at du skal tilføje mere CPU og RAM for at øge processorkraften. Hvis du har en stor ansøgning, så overvej en backend-udbyder som Firebase der tillader vandret skalering.
Kom godt i gang med PocketBase
I øjeblikket tilbyder PocketBase to SDK'er:
- Et JavaScript SDK, som du kan bruge med JavaScript-frameworks som Svelte, React, Vue og Angular.
- Et Dart SDK til Fladder apps.
Den nemmeste måde at komme i gang på er at download PocketBase. Der er flere links, så sørg for at downloade den, der er kompatibel med dit miljø.
Når du har downloadet det, skal du udpakke og navigere til pocketbase-mappen. Kør derefter denne kommando i en terminal:
./pocketbase serve
Denne kommando skal starte en webserver på disse ruter.
- Server: http://127.0.0.1:8090/
- REST API: http://127.0.0.1:8090/api/
- Admin UI: http://127.0.0.1:8090/_/
Naviger til http://127.0.0.1:8090/_/ URL for at oprette din første samling ved hjælp af admin-dashboardet.
Oprettelse af en samling i PocketBase
Første gang du åbner administratorbrugergrænsefladen, vil den bede om en e-mailadresse og adgangskode for at oprette en administratorkonto.
Sådan ser admin-brugergrænsefladen ud:
Ved at klikke på Ny kollektion knappen i admin UI åbner et samlingspanel, du kan udfylde med detaljer for at oprette en ny samling.
Sådan opretter du en samling kaldet todos bestående af en titel og udfyldte felter:
En samling kan enten være en basis- eller auth-samling. En basissamling er standardindsamlingstypen, og du kan bruge den til enhver type data. En godkendelsessamling indeholder ekstra felter til at administrere brugere, såsom brugernavn, e-mail og bekræftet.
Du behøver ikke bruge admin UI for at oprette en samling; du kan oprette en ved hjælp af Web API. PocketBase-dokumenter give SDK-specifikke eksempler på, hvordan man opretter og administrerer samlinger via API'en. Du kan oprette, se, opdatere, slette eller importere samlinger.
Brug af PocketBase i en React-applikation
JavaScript SDK giver dig mulighed for at interagere med PocketBase fra et React-projekt.
For at følge med, start med oprettelse af et React-projekt.
Installer derefter PocketBase JavaScript SDK i dit React-projekt via npm:
npm installer pocketbase --save
Derefter importerer du PocketBase i app.js og initialiserer den.
importere PocketBase fra'pocketbase';
konst pb = ny PocketBase(' http://127.0.0.1:8090');
For at illustrere, hvordan PocketBase integrerer React, skal du oprette hjælpefunktionerne til en opgave-applikation. Disse funktioner vil oprette, opdatere, hente og slette elementer.
Opret en opgavevare
I app.js skal du oprette en funktion kaldet addTodo.
konst addTodo = asynkron (todo) => {
prøve {
konst rekord = ventevente pb.collection("todos").skabe (todo);
Vend tilbage optage;
} fangst (fejl) {
Vend tilbage { fejl: fejl besked };
}
};
Denne funktion tilføjer en ny rekord i todos-samlingen.
Opdater en opgavevare
For at opdatere en post i todo-samlingen skal du oprette en funktion kaldet updateTodo og bruge opdateringsmetoden.
konst updateTodo = asynkron (record_id, todo) => {
prøve {
konst rekord = vente pb.collection("todos").update (record_id, todo);
Vend tilbage optage;
} fangst (fejl) {
Vend tilbage { fejl: fejl besked };
}
};
UpdateTodo-funktionen finder opgave-elementet baseret på post-id'et og opdaterer det med de nye data.
Slet et opgaveelement
I app.js skal du oprette en funktion kaldet deleteTodo, der sletter en post i todo-samlingen.
konst sletTodo = asynkron (record_id) => {
prøve {
vente pb.collection("todos").delete (record_id);
} fangst (fejl) {
Vend tilbage { fejl: fejl besked };
}
};
Hent en opgavevare
Du kan hente et enkelt gøremål eller alle emnerne fra samlingen.
Denne funktion henter et enkelt opgaveelement efter id:
konst getTodo = asynkron (record_id) => {
prøve {
konst rekord = vente pb.collection("todos").getOne (record_id, {
udvide: "relField1,relField2.subRelField",
});
Vend tilbage optage
} fangst (fejl) {
Vend tilbage { fejl: fejl besked };
}
};
Mens funktionen nedenfor vil hente alle posterne i todo-samlingen:
konst getTodos = asynkron (record_id) => {
prøve {
konst optegnelser = vente pb
.kollektion("todos")
.getFullList(200 /* batchstørrelse */, {
sortere: "-skabt",
});
Vend tilbage optegnelser;
} fangst (fejl) {
Vend tilbage { fejl: fejl besked };
}
}
Du kan bruge disse funktioner til at oprette og opdatere applikationens brugergrænseflade.
For mere detaljerede eksempler, se PocketBase records API dokumentation eller den genererede API-dokumentation i "Admin UI > Collections > API Preview". Du bør være i stand til at få adgang til listen, se, oprette, opdatere, slette og realtidsdokumentationen for din samling.
Hvorfor du skal bruge PocketBase
PocketBase er den bedste backend til små til mellemstore projekter. Det kræver minimal opsætning og er let at bruge. Det tilbyder to klient-SDK'er - et JavaScript SDK og et Dart SDK - og du kan bruge det i web- og mobilapplikationer.
PocketBase er også selvhostbar, og du kan hoste den på en lokal server eller en VPS. Selvom det ikke understøtter cloud-funktioner, kan du bruge det som en Go-ramme og oprette din egen app med tilpasset forretningslogik.