Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Το PocketBase είναι ένα backend ανοιχτού κώδικα που αποτελείται από μια ενσωματωμένη βάση δεδομένων SQLite με επικύρωση δεδομένων, συνδρομές σε πραγματικό χρόνο και ένα εύκολο στη χρήση REST API. Προσφέρει επίσης έλεγχο ταυτότητας και αποθήκευση αρχείων για αρχεία πολυμέσων.

Το PocketBase είναι τέλειο για έργα για τα οποία προτιμάτε να μην δημιουργήσετε ένα backend είτε λόγω χρονικών περιορισμών είτε λόγω ευκολίας, επειδή είναι εντελώς φορητό και απαιτεί ελάχιστη ρύθμιση. Ενσωματώνεται επίσης με δημοφιλείς τεχνολογίες όπως Vue, Svelte, React, Angular και Flutter.

Υπηρεσίες που παρέχονται από την PocketBase

Το PocketBase παρέχει τις περισσότερες από τις υπηρεσίες που προσφέρονται από άλλους παρόχους υποστήριξης όπως το SupaBase.

  • Βάση δεδομένων SQLite: Το PocketBase περιλαμβάνει μια ενσωματωμένη βάση δεδομένων SQLite. Αυτό διαφέρει από άλλους παρόχους υποστήριξης που χρησιμοποιούν μεγαλύτερες βάσεις δεδομένων όπως η PostgreSQL ή η MySQL. Η χρήση του SQLite κάνει το PocketBase πιο ελαφρύ. Μπορείτε επίσης να εγγραφείτε σε συμβάντα βάσης δεδομένων σε πραγματικό χρόνο μέσω ενός API.
    instagram viewer
  • Αυθεντικοποίηση: Το PocketBase υποστηρίζει έλεγχο ταυτότητας email/κωδικού πρόσβασης και Έλεγχος ταυτότητας OAuth2 μέσω Facebook, Google, GitLab και GitHub.
  • Αποθήκευση αρχείων: Μπορείτε να ανεβάσετε αρχεία φωτογραφιών, ήχου και βίντεο στον τοπικό χώρο αποθήκευσης ή σε έναν κάδο S3 χρησιμοποιώντας το PocketBase.
  • Πίνακας ελέγχου διαχειριστή: Ο πίνακας ελέγχου διαχειριστή σάς επιτρέπει να δημιουργείτε και να διαχειρίζεστε συλλογές στη βάση δεδομένων. Μπορείτε επίσης να ανεβάσετε αρχεία, να προβάλετε αρχεία καταγραφής και να διαμορφώσετε τη ρύθμιση για την αποστολή email,

Σύμφωνα με τα έγγραφα, το PocketBase μπορεί να εξυπηρετήσει εύκολα 10.000+ ταυτόχρονες και επίμονες σε πραγματικό χρόνο συνδέσεις σε 6 εικονικούς ιδιωτικούς διακομιστές, καθιστώντας το μια προσιτή επιλογή backend για μικρούς και μεσαίους εφαρμογές.

Σημειώστε ότι το PocketBase κλιμακώνεται μόνο κατακόρυφα. Αυτό σημαίνει ότι πρέπει να προσθέσετε περισσότερη CPU και RAM για να αυξήσετε την επεξεργαστική ισχύ. Εάν έχετε μεγάλη εφαρμογή, σκεφτείτε α πάροχος υποστήριξης όπως το Firebase που επιτρέπει την οριζόντια κλιμάκωση.

Ξεκινώντας με το PocketBase

Επί του παρόντος, το PocketBase παρέχει δύο SDK:

  • Ένα JavaScript SDK που μπορείτε να χρησιμοποιήσετε με πλαίσια JavaScript όπως Svelte, React, Vue και Angular.
  • Ένα Dart SDK για Εφαρμογές Flutter.

Ο ευκολότερος τρόπος για να ξεκινήσετε είναι να κατεβάστε το PocketBase. Υπάρχουν αρκετοί σύνδεσμοι, οπότε φροντίστε να κατεβάσετε αυτόν που είναι συμβατός με το περιβάλλον σας.

Μόλις το κατεβάσετε, εξαγάγετε και μεταβείτε στον φάκελο pocketbase. Στη συνέχεια, εκτελέστε αυτήν την εντολή σε ένα τερματικό:

./pocketbase σερβίρισμα

Αυτή η εντολή θα πρέπει να ξεκινήσει έναν διακομιστή web σε αυτές τις διαδρομές.

  • Υπηρέτης: http://127.0.0.1:8090/
  • REST API: http://127.0.0.1:8090/api/
  • Διεπαφή χρήστη διαχειριστή: http://127.0.0.1:8090/_/

Πλοηγηθείτε στο http://127.0.0.1:8090/_/ URL για να δημιουργήσετε την πρώτη σας συλλογή χρησιμοποιώντας τον πίνακα ελέγχου διαχειριστή.

Δημιουργία συλλογής στο PocketBase

Την πρώτη φορά που θα ανοίξετε τη διεπαφή χρήστη του διαχειριστή, θα ζητήσει μια διεύθυνση email και έναν κωδικό πρόσβασης για τη δημιουργία ενός λογαριασμού διαχειριστή.

Δείτε πώς φαίνεται η διεπαφή χρήστη του διαχειριστή:

Κάνοντας κλικ στο Νέα συλλογή κουμπί στη διεπαφή χρήστη διαχειριστή θα ανοίξει έναν πίνακα συλλογής που μπορείτε να συμπληρώσετε με λεπτομέρειες για να δημιουργήσετε μια νέα συλλογή.

Δείτε πώς θα δημιουργήσετε μια συλλογή που ονομάζεται todos που αποτελείται από έναν τίτλο και συμπληρωμένα πεδία:

Μια συλλογή μπορεί να είναι συλλογή βάσης ή εξουσιοδότησης. Η βασική συλλογή είναι ο προεπιλεγμένος τύπος συλλογής και μπορείτε να τη χρησιμοποιήσετε για οποιονδήποτε τύπο δεδομένων. Μια συλλογή εξουσιοδότησης περιέχει επιπλέον πεδία για τη διαχείριση των χρηστών, όπως όνομα χρήστη, email και επαληθευμένα.

Δεν χρειάζεται να χρησιμοποιήσετε τη διεπαφή χρήστη διαχειριστή για να δημιουργήσετε μια συλλογή. μπορείτε να δημιουργήσετε ένα χρησιμοποιώντας το Web API. Έγγραφα PocketBase παρέχετε παραδείγματα ειδικά για το SDK σχετικά με τον τρόπο δημιουργίας και διαχείρισης συλλογών μέσω του API. Μπορείτε να δημιουργήσετε, να προβάλετε, να ενημερώσετε, να διαγράψετε ή να εισαγάγετε συλλογές.

Χρήση του PocketBase σε μια εφαρμογή React

Το JavaScript SDK σάς επιτρέπει να αλληλεπιδράτε με το PocketBase από ένα έργο React.

Για να ακολουθήσετε, ξεκινήστε από δημιουργώντας ένα έργο React.

Στη συνέχεια, εγκαταστήστε το PocketBase JavaScript SDK στο έργο σας React μέσω npm:

npm εγκατάσταση pocketbase --save

Στη συνέχεια, στο app.js, εισαγάγετε το PocketBase και αρχικοποιήστε το.

εισαγωγή Βάση τσέπης από"βάση τσέπης";
συνθ pb = νέος Βάση τσέπης(' http://127.0.0.1:8090');

Για να δείξετε πώς το PocketBase ενσωματώνει το React, θα δημιουργήσετε τις βοηθητικές συναρτήσεις για μια εφαρμογή εκκρεμοτήτων. Αυτές οι λειτουργίες θα δημιουργήσουν, θα ενημερώσουν, θα ανακτήσουν και θα διαγράψουν στοιχεία.

Δημιουργήστε ένα αντικείμενο εργασίας

Στο app.js, δημιουργήστε μια συνάρτηση που ονομάζεται addTodo.

συνθ addTodo = ασυγχρονισμός (todo) => {
δοκιμάστε {
συνθ εγγραφή = αναμένωαναμένω pb.collection("todos".create (todo);
ΕΠΙΣΤΡΟΦΗ Ρεκόρ;
 } σύλληψη (λάθος) {
ΕΠΙΣΤΡΟΦΗ { λάθος: μήνυμα λάθους };
 }
};

Αυτή η λειτουργία προσθέτει μια νέα εγγραφή στη συλλογή todos.

Ενημερώστε ένα αντικείμενο Todo

Για να ενημερώσετε μια εγγραφή στη συλλογή εκκρεμοτήτων, δημιουργήστε μια συνάρτηση που ονομάζεται updateTodo και χρησιμοποιήστε τη μέθοδο ενημέρωσης.

συνθ updateTodo = ασυγχρονισμός (record_id, todo) => {
δοκιμάστε {
συνθ εγγραφή = αναμένω pb.collection("todos").update (record_id, todo);
ΕΠΙΣΤΡΟΦΗ Ρεκόρ;
 } σύλληψη (λάθος) {
ΕΠΙΣΤΡΟΦΗ { λάθος: μήνυμα λάθους };
 }
};

Η συνάρτηση updateTodo βρίσκει το αντικείμενο με βάση το αναγνωριστικό εγγραφής και το ενημερώνει με τα νέα δεδομένα.

Διαγράψτε ένα αντικείμενο Todo

Στο app.js, δημιουργήστε μια συνάρτηση που ονομάζεται deleteTodo η οποία διαγράφει μια εγγραφή στη συλλογή εργασιών.

συνθ διαγραφήTodo = ασυγχρονισμός (αναγνωριστικό_εγγραφής) => {
δοκιμάστε {
αναμένω pb.collection("todos".delete (record_id);
 } σύλληψη (λάθος) {
ΕΠΙΣΤΡΟΦΗ { λάθος: μήνυμα λάθους };
 }
};

Ανακτήστε ένα αντικείμενο Todo

Μπορείτε να ανακτήσετε ένα μεμονωμένο αντικείμενο ή όλα τα αντικείμενα από τη συλλογή.

Αυτή η συνάρτηση ανακτά ένα μεμονωμένο αντικείμενο με αναγνωριστικό:

συνθ getTodo = ασυγχρονισμός (αναγνωριστικό_εγγραφής) => {
δοκιμάστε {
συνθ εγγραφή = αναμένω pb.collection("todos".getOne (record_id, {
επεκτείνουν: "relField1,relField2.subRelField",
});
ΕΠΙΣΤΡΟΦΗ Ρεκόρ
 } σύλληψη (λάθος) {
ΕΠΙΣΤΡΟΦΗ { λάθος: μήνυμα λάθους };
 }
};

Ενώ η παρακάτω συνάρτηση θα ανακτήσει όλες τις εγγραφές στη συλλογή εργασιών:

συνθ getTodos = ασυγχρονισμός (αναγνωριστικό_εγγραφής) => {
δοκιμάστε {
συνθ εγγραφές = αναμένω pb
.συλλογή("todos")
.getFullList(200 /* μέγεθος παρτίδας */, {
είδος: "-δημιουργήθηκε",
});
ΕΠΙΣΤΡΟΦΗ εγγραφές?
} σύλληψη (λάθος) {
ΕΠΙΣΤΡΟΦΗ { λάθος: μήνυμα λάθους };
}
}

Μπορείτε να χρησιμοποιήσετε αυτές τις λειτουργίες για να δημιουργήσετε και να ενημερώσετε το UI της εφαρμογής.

Για πιο λεπτομερή παραδείγματα, βλ PocketBase records API τεκμηρίωση ή την τεκμηρίωση API που δημιουργήθηκε στο "Διεπαφή χρήστη διαχειριστή > Συλλογές > Προεπισκόπηση API". Θα πρέπει να έχετε πρόσβαση στη λίστα, να προβάλετε, να δημιουργήσετε, να ενημερώσετε, να διαγράψετε και την τεκμηρίωση σε πραγματικό χρόνο για τη συλλογή σας.

Γιατί πρέπει να χρησιμοποιήσετε το PocketBase

Το PocketBase είναι το καλύτερο backend για μικρά έως μεσαία έργα. Απαιτεί ελάχιστη ρύθμιση και είναι εύκολο στη χρήση. Προσφέρει δύο SDK-πελάτες—ένα JavaScript SDK και ένα Dart SDK—και μπορείτε να το χρησιμοποιήσετε σε εφαρμογές ιστού και για κινητές συσκευές.

Το PocketBase είναι επίσης αυτο-φιλοξενούμενο και μπορείτε να το φιλοξενήσετε σε τοπικό διακομιστή ή VPS. Αν και δεν υποστηρίζει λειτουργίες cloud, μπορείτε να το χρησιμοποιήσετε ως πλαίσιο Go και να δημιουργήσετε τη δική σας εφαρμογή με προσαρμοσμένη επιχειρηματική λογική.