Was ist PocketBase und wie wird es verwendet?

Was ist PocketBase und wie wird es verwendet?

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.
  • Dateispeicherung : 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 gleichzeitige und dauerhafte Echtzeitverbindungen auf 6 virtuellen privaten Servern bedienen, was es zu einer erschwinglichen Backend-Wahl für kleine bis mittlere Anwendungen macht.

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, ziehen Sie einen Back-End-Anbieter wie Firebase in Betracht, der 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 Einstieg ist das Herunterladen von PocketBase . 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 serve

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-UI: http://127.0.0.1:8090/_/

Navigieren Sie zur URL http://127.0.0.1:8090/_/, um Ihre erste Sammlung über das Admin-Dashboard zu erstellen.

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:

Pocketbase-Admin-Benutzeroberfläche

Durch Klicken auf die Schaltfläche Neue Sammlung in der Admin-Benutzeroberfläche wird ein Sammlungsfenster geöffnet, das Sie mit Details ausfüllen können, um eine neue Sammlung zu erstellen.

So erstellen Sie eine Sammlung namens Todos, die aus einem Titel und ausgefüllten Feldern besteht:

Todo Pocketbase-Kollektion

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 bieten SDK-spezifische Beispiele 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 der Erstellung 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.

import PocketBase from 'pocketbase';
const pb = new 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.

const addTodo = async (todo) => {
try {
   const record = await await pb.collection("todos").create(todo);
   return record;
 } catch (error) {
   return { error: error.message };
 }
};

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.

const updateTodo = async (record_id, todo) => {
try {
   const record = await pb.collection("todos").update(record_id, todo);
   return record;
 } catch (error) {
   return { error: error.message };
 }
};

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.

const deleteTodo = async (record_id) => {
try {
   await pb.collection("todos").delete(record_id);
 } catch (error) {
   return { error: error.message };
 }
};

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:

const getTodo = async (record_id) => {
try {
   const record = await pb.collection("todos").getOne(record_id, {
     expand: "relField1,relField2.subRelField",
   });
   return record
 } catch (error) {
   return { error: error.message };
 }
};

Während die folgende Funktion alle Datensätze in der Aufgabensammlung abruft:

const getTodos = async (record_id) => {
  try {
    const records = await pb
      .collection("todos")
      .getFullList(200 /* batch size */, {
        sort: "-created",
      });
    return records;
  } catch (error) {
    return { error: error.message };
  }
}

Sie können diese Funktionen verwenden, um die Benutzeroberfläche der Anwendung zu erstellen und zu aktualisieren.

Ausführlichere Beispiele finden Sie in der PocketBase Records API- Dokumentation oder der generierten API-Dokumentation in „Admin UI > Collections > API Preview“. Sie sollten in der Lage sein, auf die Liste, Ansicht, Erstellung, Aktualisierung, Löschung und die Echtzeitdokumentation Ihrer Sammlung zuzugreifen.

generierte API-Dokumente

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert