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 integrato. 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 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.
- Cruscotto 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+ simultanei e persistenti in tempo reale connessioni su 6 server privati virtuali che lo rendono una scelta di backend conveniente per piccole e medie imprese applicazioni.
Si noti che PocketBase si ridimensiona solo verticalmente. Ciò significa che è necessario aggiungere più CPU e RAM per aumentare la potenza di elaborazione. Se hai un'applicazione di grandi dimensioni, considera a fornitore 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 App svolazzanti.
Il modo più semplice per iniziare è farlo scarica 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 servire
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/_/
Naviga verso il http://127.0.0.1:8090/_/ URL 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:
Facendo clic sul Nuova collezione Il pulsante nell'interfaccia utente di amministrazione aprirà un pannello di raccolta che puoi compilare con i dettagli per creare una nuova raccolta.
Ecco come creeresti una raccolta chiamata todos composta da un titolo e campi completati:
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. Documenti PocketBase fornire 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 seguire, inizia da creazione di 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.
importare Base tascabile da'base tascabile';
cost pb = nuovo Base tascabile(' 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.
cost addTodo = asincrono (da fare) => {
Tentativo {
cost registrare = attendereattendere pb.raccolta("tutto").creare (da fare);
ritorno documentazione;
} presa (errore) {
ritorno { errore: messaggio di errore };
}
};
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.
cost updateTodo = asincrono (record_id, cose da fare) => {
Tentativo {
cost registrare = attendere pb.raccolta("tutto").update (record_id, cose da fare);
ritorno documentazione;
} presa (errore) {
ritorno { errore: messaggio di errore };
}
};
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.
cost deleteTodo = asincrono (record_id) => {
Tentativo {
attendere pb.raccolta("tutto".delete (record_id);
} presa (errore) {
ritorno { errore: messaggio di errore };
}
};
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:
cost getTodo = asincrono (record_id) => {
Tentativo {
cost registrare = attendere pb.raccolta("tutto").getOne (record_id, {
espandere: "relField1,relField2.subRelField",
});
ritorno documentazione
} presa (errore) {
ritorno { errore: messaggio di errore };
}
};
Mentre la funzione seguente recupererà tutti i record nella raccolta di cose da fare:
cost getTodos = asincrono (record_id) => {
Tentativo {
cost record = attendere pb
.collezione("tutto")
.getFullList(200 /* dimensione del lotto */, {
ordinare: "-creato",
});
ritorno registrazioni;
} presa (errore) {
ritorno { errore: messaggio di errore };
}
}
È possibile utilizzare queste funzioni per creare e aggiornare l'interfaccia utente dell'applicazione.
Per esempi più dettagliati, vedere il PocketBase registra l'API documentazione 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.
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.