Che cos’è PocketBase e come si usa?

Che cos’è PocketBase e come si usa?

PocketBase è un backend open source costituito da un database SQLite integrato con convalida dei dati, abbonamenti in tempo reale e un’API REST di facile utilizzo. Offre inoltre l’autenticazione e l’archiviazione dei file multimediali.

PocketBase è perfetto per i progetti per i quali preferiresti non creare un back-end a causa dei limiti di tempo o della convenienza perché è completamente portatile e richiede una configurazione minima. Si integra anche con tecnologie popolari come Vue, Svelte, React, Angular e Flutter.

Servizi forniti da PocketBase

PocketBase fornisce la maggior parte dei servizi offerti da altri fornitori di back-end come SupaBase.

  • Database SQLite : PocketBase include un database SQLite incorporato. Ciò differisce da altri provider di back-end che utilizzano database più grandi come PostgreSQL o MySQL. L’uso di SQLite rende PocketBase più leggero. Puoi anche iscriverti agli eventi del database in tempo reale tramite un’API.
  • Autenticazione : PocketBase supporta l’autenticazione e-mail/password e l’autenticazione OAuth2 tramite Facebook, Google, GitLab e GitHub.
  • Archiviazione file : puoi caricare foto, file audio e video nell’archiviazione locale o in un bucket S3 utilizzando PocketBase.
  • Dashboard di amministrazione : la dashboard di amministrazione ti consente di creare e gestire raccolte nel database. Puoi anche caricare file, visualizzare file di registro e configurare le impostazioni per l’invio di e-mail,

Secondo i documenti, PocketBase può servire facilmente oltre 10.000 connessioni in tempo reale simultanee e persistenti su 6 server privati ​​virtuali, rendendolo una scelta di back-end conveniente per applicazioni di piccole e medie dimensioni.

Si noti che PocketBase si ridimensiona solo verticalmente. Ciò significa che è necessario aggiungere più CPU e RAM per aumentare la potenza di elaborazione. Se disponi di un’applicazione di grandi dimensioni, prendi in considerazione un provider di back-end come Firebase che consente il ridimensionamento orizzontale.

Introduzione a PocketBase

Attualmente, PocketBase fornisce due SDK:

  • Un SDK JavaScript che puoi utilizzare con framework JavaScript come Svelte, React, Vue e Angular.
  • Un Dart SDK per le app Flutter.

Il modo più semplice per iniziare è scaricare PocketBase . Esistono diversi collegamenti, quindi assicurati di scaricare quello compatibile con il tuo ambiente.

Una volta scaricato, estrai e vai alla cartella pocketbase. Quindi esegui questo comando in un terminale:

./pocketbase serve

Questo comando dovrebbe avviare un server Web su questi percorsi.

  • Server: http://127.0.0.1:8090/
  • API REST: http://127.0.0.1:8090/api/
  • Interfaccia utente amministratore: http://127.0.0.1:8090/_/

Accedi all’URL http://127.0.0.1:8090/_/ per creare la tua prima raccolta utilizzando la dashboard di amministrazione.

Creazione di una raccolta in PocketBase

La prima volta che apri l’interfaccia utente dell’amministratore, ti verrà chiesto un indirizzo e-mail e una password per creare un account amministratore.

Ecco come appare l’interfaccia utente dell’amministratore:

Interfaccia utente di amministrazione di Pocketbase

Facendo clic sul pulsante Nuova raccolta nell’interfaccia utente di amministrazione si aprirà un pannello di raccolta che puoi compilare con i dettagli per creare una nuova raccolta.

Ecco come creare una raccolta chiamata todos composta da un titolo e campi completati:

Collezione base tascabile Todo

Una raccolta può essere una raccolta base o auth. Una raccolta di base è il tipo di raccolta predefinito ed è possibile utilizzarla per qualsiasi tipo di dati. Una raccolta di autenticazione contiene campi aggiuntivi per gestire gli utenti, come nome utente, email e verificato.

Non è necessario utilizzare l’interfaccia utente di amministrazione per creare una raccolta; puoi crearne uno utilizzando l’API Web. I documenti di PocketBase forniscono esempi specifici dell’SDK su come creare e gestire raccolte tramite l’API. Puoi creare, visualizzare, aggiornare, eliminare o importare raccolte.

Utilizzo di PocketBase in un’applicazione React

L’SDK JavaScript ti consente di interagire con PocketBase da un progetto React.

Per proseguire, inizia creando un progetto React.

Quindi, installa PocketBase JavaScript SDK nel tuo progetto React tramite npm:

npm install pocketbase --save

Successivamente, in app.js, importa PocketBase e inizializzalo.

import PocketBase from 'pocketbase';
const pb = new PocketBase('http://127.0.0.1:8090');

Per illustrare come PocketBase integra React, creerai le funzioni di supporto per un’applicazione da fare. Queste funzioni creeranno, aggiorneranno, recupereranno ed elimineranno gli elementi.

Crea un elemento Todo

In app.js, crea una funzione chiamata addTodo.

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

Questa funzione aggiunge un nuovo record nella raccolta di cose da fare.

Aggiorna un elemento Todo

Per aggiornare un record nella raccolta di cose da fare, crea una funzione chiamata updateTodo e usa il metodo update.

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 };
 }
};

La funzione updateTodo trova l’elemento da fare in base all’ID del record e lo aggiorna con i nuovi dati.

Elimina un elemento Todo

In app.js, crea una funzione chiamata deleteTodo che elimina un record nella raccolta di cose da fare.

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

Recupera un oggetto Todo

Puoi recuperare un singolo elemento da fare o tutti gli elementi della raccolta.

Questa funzione recupera un singolo elemento da fare per id:

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 };
 }
};

Mentre la funzione seguente recupererà tutti i record nella raccolta di cose da fare:

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 };
  }
}

È possibile utilizzare queste funzioni per creare e aggiornare l’interfaccia utente dell’applicazione.

Per esempi più dettagliati, vedere la documentazione dell’API dei record di PocketBase o la documentazione dell’API generata in “Admin UI > Collections > API Preview”. Dovresti essere in grado di accedere all’elenco, visualizzare, creare, aggiornare, eliminare e la documentazione in tempo reale per la tua collezione.

documenti API generati

Perché dovresti usare PocketBase

PocketBase è il miglior backend per progetti medio-piccoli. Richiede una configurazione minima ed è facile da usare. Offre due SDK client, un SDK JavaScript e un SDK Dart, e puoi utilizzarlo nelle applicazioni Web e per dispositivi mobili.

PocketBase è anche auto-ospitabile e puoi ospitarlo su un server locale o un VPS. Sebbene non supporti le funzioni cloud, puoi utilizzarlo come framework Go e creare la tua app con una logica aziendale personalizzata.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *