PocketBase is een open-source backend die bestaat uit een ingebedde SQLite-database met gegevensvalidatie, real-time abonnementen en een gebruiksvriendelijke REST API. Het biedt ook authenticatie en bestandsopslag voor mediabestanden.
PocketBase is perfect voor projecten waarvoor u liever geen backend bouwt vanwege tijdgebrek of gemak, omdat het volledig draagbaar is en minimale installatie vereist. Het kan ook worden geïntegreerd met populaire technologieën zoals Vue, Svelte, React, Angular en Flutter.
Diensten geleverd door PocketBase
PocketBase biedt de meeste services die worden aangeboden door andere backend-providers, zoals SupaBase.
- SQLite-database: PocketBase bevat een ingesloten SQLite-database. Dit verschilt van andere backend-providers die grotere databases gebruiken, zoals PostgreSQL of MySQL. Het gebruik van SQLite maakt PocketBase lichter. U kunt zich via een API ook abonneren op real-time databasegebeurtenissen.
- Authenticatie: PocketBase ondersteunt e-mail/wachtwoordverificatie en OAuth2-authenticatie via Facebook, Google, GitLab en GitHub.
- Bestandsopslag: U kunt foto's, audio- en videobestanden uploaden naar lokale opslag of een S3-bucket met behulp van PocketBase.
- Beheerdashboard: Met het beheerdersdashboard kunt u collecties in de database maken en beheren. U kunt ook bestanden uploaden, logbestanden bekijken en de instellingen configureren voor het verzenden van e-mails,
Volgens de documenten kan PocketBase gemakkelijk meer dan 10.000 gelijktijdige en aanhoudende real-time verbindingen op 6 virtual private servers waardoor het een betaalbare backend-keuze is voor kleine tot middelgrote toepassingen.
Merk op dat PocketBase alleen verticaal schaalt. Dit betekent dat u meer CPU en RAM moet toevoegen om de verwerkingskracht te vergroten. Als u een grote toepassing heeft, overweeg dan a backend-provider zoals Firebase waarmee horizontaal schalen mogelijk is.
Aan de slag met PocketBase
Momenteel biedt PocketBase twee SDK's:
- Een JavaScript SDK die u kunt gebruiken met JavaScript-frameworks zoals Svelte, React, Vue en Angular.
- Een Dart-SDK voor Flutter-apps.
De eenvoudigste manier om aan de slag te gaan is om PocketBase downloaden. Er zijn verschillende links, dus zorg ervoor dat u degene downloadt die compatibel is met uw omgeving.
Nadat je het hebt gedownload, pak je het uit en navigeer je naar de pocketbase-map. Voer vervolgens deze opdracht uit in een terminal:
./pocketbase serveren
Deze opdracht zou een webserver op deze routes moeten starten.
- Server: http://127.0.0.1:8090/
- REST-API: http://127.0.0.1:8090/api/
- Beheerdersinterface: http://127.0.0.1:8090/_/
Navigeer naar de http://127.0.0.1:8090/_/ URL om uw eerste verzameling te maken met behulp van het beheerdersdashboard.
Een verzameling maken in PocketBase
De eerste keer dat u de beheerdersinterface opent, wordt om een e-mailadres en wachtwoord gevraagd om een beheerdersaccount aan te maken.
Zo ziet de gebruikersinterface van de beheerder eruit:
Klikken op de Nieuwe collectie knop in de beheerdersinterface opent een verzamelingspaneel dat u kunt invullen met details om een nieuwe verzameling te maken.
Zo maak je een verzameling met de naam todos, bestaande uit een titel en ingevulde velden:
Een verzameling kan een basis- of auth-verzameling zijn. Een basisverzameling is het standaardverzamelingstype en u kunt deze voor elk type gegevens gebruiken. Een auth-verzameling bevat extra velden om gebruikers te beheren, zoals gebruikersnaam, e-mail en geverifieerd.
U hoeft de beheerdersinterface niet te gebruiken om een verzameling te maken; u kunt er een maken met behulp van de Web API. PocketBase-documenten SDK-specifieke voorbeelden geven van het maken en beheren van collecties via de API. U kunt collecties maken, bekijken, bijwerken, verwijderen of importeren.
PocketBase gebruiken in een React-toepassing
Met de JavaScript SDK kunt u communiceren met PocketBase vanuit een React-project.
Begin met om mee te volgen een React-project maken.
Installeer vervolgens de PocketBase JavaScript SDK in uw React-project via npm:
npm install pocketbase --save
Importeer vervolgens in app.js PocketBase en initialiseer het.
importeren PocketBase van'zakbasis';
const p = nieuw ZakBase(' http://127.0.0.1:8090');
Om te illustreren hoe PocketBase React integreert, maakt u de helperfuncties voor een to-do-toepassing. Met deze functies kunnen items worden gemaakt, bijgewerkt, opgehaald en verwijderd.
Maak een Todo-item aan
Maak in app.js een functie met de naam addTodo.
const addTodo = asynchroon (todo) => {
poging {
const opnemen = wachtenwachten pb.verzameling("taken").maken (todo);
opbrengst dossier;
} vangst (fout) {
opbrengst { fout: foutbericht };
}
};
Deze functie voegt een nieuw record toe aan de todos-verzameling.
Update een Todo-item
Om een record in de todo-verzameling bij te werken, maakt u een functie met de naam updateTodo en gebruikt u de update-methode.
const updateTodo = asynchroon (record_id, todo) => {
poging {
const opnemen = wachten pb.verzameling("taken").update (record_id, todo);
opbrengst dossier;
} vangst (fout) {
opbrengst { fout: foutbericht };
}
};
De functie updateTodo vindt het actiepunt op basis van de record-ID en werkt het bij met de nieuwe gegevens.
Een Todo-item verwijderen
Maak in app.js een functie met de naam deleteTodo die een record in de todo-verzameling verwijdert.
const deleteTodo = asynchroon (record_id) => {
poging {
wachten pb.verzameling("taken").verwijderen (record_id);
} vangst (fout) {
opbrengst { fout: foutbericht };
}
};
Een Todo-item ophalen
U kunt een enkel to-do-item ophalen of alle items uit de verzameling.
Deze functie haalt een enkel to-do-item op met id:
const getTodo = asynchroon (record_id) => {
poging {
const opnemen = wachten pb.verzameling("taken".getOne (record_id, {
uitbreiden: "relField1,relField2.subRelField",
});
opbrengst dossier
} vangst (fout) {
opbrengst { fout: foutbericht };
}
};
Terwijl de onderstaande functie alle records in de todo-verzameling zal ophalen:
const getTodos = asynchroon (record_id) => {
poging {
const registreert = wachten pb
.verzameling("taken")
.getFullList(200 /* seriegrootte */, {
soort: "-gecreëerd",
});
opbrengst verslagen;
} vangst (fout) {
opbrengst { fout: foutbericht };
}
}
U kunt deze functies gebruiken om de gebruikersinterface van de toepassing te maken en bij te werken.
Voor meer gedetailleerde voorbeelden, zie de PocketBase registreert API documentatie of de gegenereerde API-documentatie in de "Admin UI > Collections > API Preview". U zou toegang moeten hebben tot de lijst, bekijken, maken, bijwerken, verwijderen en de realtime documentatie voor uw verzameling.
Waarom u PocketBase zou moeten gebruiken
PocketBase is de beste backend voor kleine tot middelgrote projecten. Het vereist minimale installatie en is gemakkelijk te gebruiken. Het biedt twee client-SDK's - een JavaScript-SDK en een Dart-SDK - en u kunt het gebruiken in web- en mobiele toepassingen.
PocketBase is ook zelfhostbaar en u kunt het hosten op een lokale server of een VPS. Hoewel het geen cloudfuncties ondersteunt, kunt u het gebruiken als een Go-framework en uw eigen app maken met aangepaste bedrijfslogica.