PocketBase ist ein Open-Source-Backend, das aus einer eingebetteten SQLite-Datenbank mit Datenvalidierung, Echtzeitabonnements und einer benutzerfreundlichen REST-API besteht. Es bietet auch Authentifizierung und Dateispeicherung für Mediendateien.
PocketBase ist perfekt für Projekte, für die Sie aus Zeitgründen oder aus Bequemlichkeit lieber kein Backend erstellen möchten, da es vollständig portabel ist und nur minimale Einrichtung erfordert. Es lässt sich auch in beliebte Technologien wie Vue, Svelte, React, Angular und Flutter integrieren.
Von PocketBase bereitgestellte Dienste
PocketBase bietet die meisten Dienste, die von anderen Backend-Anbietern wie SupaBase angeboten werden.
- SQLite-Datenbank: PocketBase enthält eine eingebettete SQLite-Datenbank. Dies unterscheidet sich von anderen Backend-Anbietern, die größere Datenbanken wie PostgreSQL oder MySQL verwenden. Die Verwendung von SQLite macht PocketBase leichter. Sie können auch Datenbankereignisse in Echtzeit über eine API abonnieren.
- Authentifizierung: PocketBase unterstützt E-Mail/Passwort-Authentifizierung und OAuth2-Authentifizierung über Facebook, Google, GitLab und GitHub.
- Dateispeicher: Mit PocketBase können Sie Fotos, Audio- und Videodateien in den lokalen Speicher oder einen S3-Bucket hochladen.
- Admin-Dashboard: Mit dem Admin-Dashboard können Sie Sammlungen in der Datenbank erstellen und verwalten. Sie können auch Dateien hochladen, Protokolldateien anzeigen und die Einstellung zum Senden von E-Mails konfigurieren.
Laut den Dokumenten kann PocketBase problemlos mehr als 10.000 gleichzeitig und dauerhaft in Echtzeit bedienen Verbindungen auf 6 virtuellen privaten Servern, was es zu einer erschwinglichen Backend-Wahl für kleine bis mittlere Unternehmen macht Anwendungen.
Beachten Sie, dass PocketBase nur vertikal skaliert. Das bedeutet, dass Sie mehr CPU und RAM hinzufügen müssen, um die Verarbeitungsleistung zu erhöhen. Wenn Sie eine große Anwendung haben, erwägen Sie a Backend-Anbieter wie Firebase die eine horizontale Skalierung ermöglicht.
Erste Schritte mit PocketBase
Derzeit stellt PocketBase zwei SDKs bereit:
- Ein JavaScript-SDK, das Sie mit JavaScript-Frameworks wie Svelte, React, Vue und Angular verwenden können.
- Ein Dart-SDK für Flutter-Apps.
Der einfachste Weg, um anzufangen, ist Laden Sie Pocket Base herunter. Es gibt mehrere Links, stellen Sie also sicher, dass Sie denjenigen herunterladen, der mit Ihrer Umgebung kompatibel ist.
Sobald Sie es heruntergeladen haben, extrahieren und navigieren Sie zum Pocketbase-Ordner. Führen Sie dann diesen Befehl in einem Terminal aus:
./pocketbase dienen
Dieser Befehl sollte einen Webserver auf diesen Routen starten.
- Server: http://127.0.0.1:8090/
- REST-API: http://127.0.0.1:8090/api/
- Admin-Benutzeroberfläche: http://127.0.0.1:8090/_/
Navigieren Sie zu http://127.0.0.1:8090/_/ URL zum Erstellen Ihrer ersten Sammlung über das Admin-Dashboard.
Erstellen einer Sammlung in PocketBase
Wenn Sie die Admin-Benutzeroberfläche zum ersten Mal öffnen, werden Sie nach einer E-Mail-Adresse und einem Passwort gefragt, um ein Admin-Konto zu erstellen.
So sieht die Admin-Benutzeroberfläche aus:
Klicken Sie auf die Neue Kollektion Schaltfläche in der Admin-Benutzeroberfläche öffnet ein Sammlungsfenster, das Sie mit Details ausfüllen können, um eine neue Sammlung zu erstellen.
So würden Sie eine Sammlung namens Todos erstellen, die aus einem Titel und ausgefüllten Feldern besteht:
Eine Sammlung kann entweder eine Basis- oder eine Authentifizierungssammlung sein. Eine Basissammlung ist der Standardsammlungstyp und Sie können sie für jeden Datentyp verwenden. Eine Authentifizierungssammlung enthält zusätzliche Felder zum Verwalten von Benutzern, wie Benutzername, E-Mail und Verifiziert.
Sie müssen die Admin-Benutzeroberfläche nicht verwenden, um eine Sammlung zu erstellen; Sie können eine mit der Web-API erstellen. PocketBase-Dokumente Bereitstellung von SDK-spezifischen Beispielen zum Erstellen und Verwalten von Sammlungen über die API. Sie können Sammlungen erstellen, anzeigen, aktualisieren, löschen oder importieren.
Verwenden von PocketBase in einer React-Anwendung
Mit dem JavaScript-SDK können Sie von einem React-Projekt aus mit PocketBase interagieren.
Um mitzumachen, beginnen Sie mit Erstellen eines React-Projekts.
Installieren Sie dann das PocketBase JavaScript SDK in Ihrem React-Projekt über npm:
npm install pocketbase --save
Importieren Sie als Nächstes in app.js PocketBase und initialisieren Sie es.
importieren PocketBase aus'Taschenbasis';
konst pb = neu PocketBase(' http://127.0.0.1:8090');
Um zu veranschaulichen, wie PocketBase React integriert, erstellen Sie die Hilfsfunktionen für eine Aufgabenanwendung. Diese Funktionen erstellen, aktualisieren, rufen ab und löschen Elemente.
Erstellen Sie ein Todo-Element
Erstellen Sie in app.js eine Funktion namens addTodo.
konst addTodo = asynchron (todo) => {
versuchen {
konst Rekord = erwartenerwarten pb.Sammlung ("todos").erstellen (todo);
zurückkehren aufzeichnen;
} fangen (Fehler) {
zurückkehren { Fehler: Fehlermeldung };
}
};
Diese Funktion fügt der Todos-Sammlung einen neuen Datensatz hinzu.
Aktualisieren Sie ein Todo-Element
Um einen Datensatz in der todo-Auflistung zu aktualisieren, erstellen Sie eine Funktion namens updateTodo und verwenden Sie die update-Methode.
konst updateTodo = asynchron (record_id, todo) => {
versuchen {
konst Rekord = erwarten pb.Sammlung ("todos").update (record_id, zu erledigen);
zurückkehren aufzeichnen;
} fangen (Fehler) {
zurückkehren { Fehler: Fehlermeldung };
}
};
Die updateTodo-Funktion findet das Aufgabenelement basierend auf der Datensatz-ID und aktualisiert es mit den neuen Daten.
Löschen Sie ein Todo-Element
Erstellen Sie in app.js eine Funktion namens deleteTodo, die einen Datensatz in der todo-Sammlung löscht.
konst deleteTodo = asynchron (record_id) => {
versuchen {
erwarten pb.Sammlung ("todos").delete (record_id);
} fangen (Fehler) {
zurückkehren { Fehler: Fehlermeldung };
}
};
Rufen Sie ein Todo-Element ab
Sie können ein einzelnes Aufgabenelement oder alle Elemente aus der Sammlung abrufen.
Diese Funktion ruft ein einzelnes Aufgabenelement nach ID ab:
konst getTodo = asynchron (record_id) => {
versuchen {
konst Rekord = erwarten pb.Sammlung ("todos").getOne (record_id, {
expandieren: "relFeld1,relFeld2.subRelFeld",
});
zurückkehren aufzeichnen
} fangen (Fehler) {
zurückkehren { Fehler: Fehlermeldung };
}
};
Während die folgende Funktion alle Datensätze in der Aufgabensammlung abruft:
konst getTodos = asynchron (record_id) => {
versuchen {
konst Aufzeichnungen = erwarten pb
.Sammlung("todos")
.getFullList(200 /* Stapelgröße */, {
Sortieren: "-erstellt",
});
zurückkehren Aufzeichnungen;
} fangen (Fehler) {
zurückkehren { Fehler: Fehlermeldung };
}
}
Sie können diese Funktionen verwenden, um die Benutzeroberfläche der Anwendung zu erstellen und zu aktualisieren.
Ausführlichere Beispiele finden Sie unter PocketBase-Aufzeichnungs-API Dokumentation oder die generierte API-Dokumentation in "Admin UI > Sammlungen > API-Vorschau". Sie sollten in der Lage sein, auf die Liste, Ansicht, Erstellung, Aktualisierung, Löschung und die Echtzeitdokumentation Ihrer Sammlung zuzugreifen.
Warum Sie PocketBase verwenden sollten
PocketBase ist das beste Backend für kleine bis mittlere Projekte. Es erfordert nur minimale Einrichtung und ist einfach zu bedienen. Es bietet zwei Client-SDKs – ein JavaScript-SDK und ein Dart-SDK – und Sie können es in Web- und mobilen Anwendungen verwenden.
PocketBase kann auch selbst gehostet werden, und Sie können es auf einem lokalen Server oder einem VPS hosten. Obwohl es keine Cloud-Funktionen unterstützt, können Sie es als Go-Framework verwenden und Ihre eigene App mit benutzerdefinierter Geschäftslogik erstellen.