PocketBase to backend typu open source składający się z wbudowanej bazy danych SQLite z funkcją sprawdzania poprawności danych, subskrypcjami w czasie rzeczywistym oraz łatwym w użyciu interfejsem API REST. Oferuje również uwierzytelnianie i przechowywanie plików dla plików multimedialnych.
PocketBase jest idealny do projektów, dla których wolisz nie budować zaplecza ze względu na ograniczenia czasowe lub wygodę, ponieważ jest całkowicie przenośny i wymaga minimalnej konfiguracji. Integruje się również z popularnymi technologiami, takimi jak Vue, Svelte, React, Angular i Flutter.
Usługi świadczone przez PocketBase
PocketBase zapewnia większość usług oferowanych przez innych dostawców zaplecza, takich jak SupaBase.
- Baza danych SQLite: PocketBase zawiera wbudowaną bazę danych SQLite. Różni się to od innych dostawców zaplecza, którzy używają większych baz danych, takich jak PostgreSQL lub MySQL. Zastosowanie SQLite sprawia, że PocketBase jest lżejszy. Możesz także subskrybować zdarzenia bazy danych w czasie rzeczywistym za pośrednictwem interfejsu API.
- Uwierzytelnianie: PocketBase obsługuje uwierzytelnianie za pomocą adresu e-mail/hasła i Uwierzytelnianie OAuth2 przez Facebooka, Google, GitLab i GitHub.
- Nośnik danych: Możesz przesyłać zdjęcia, pliki audio i wideo do lokalnej pamięci masowej lub zasobnika S3 za pomocą PocketBase.
- Pulpit administratora: Pulpit administratora umożliwia tworzenie kolekcji w bazie danych i zarządzanie nimi. Możesz także przesyłać pliki, przeglądać pliki dziennika i konfigurować ustawienia wysyłania wiadomości e-mail,
Według dokumentów, PocketBase może z łatwością obsłużyć ponad 10 000 jednoczesnych i trwałych danych w czasie rzeczywistym połączenia na 6 wirtualnych serwerach prywatnych, co czyni go niedrogim wyborem zaplecza dla małych i średnich firm Aplikacje.
Zauważ, że PocketBase skaluje się tylko w pionie. Oznacza to, że musisz dodać więcej procesora i pamięci RAM, aby zwiększyć moc obliczeniową. Jeśli masz dużą aplikację, rozważ a dostawca zaplecza, taki jak Firebase który umożliwia skalowanie w poziomie.
Pierwsze kroki z PocketBase
Obecnie PocketBase udostępnia dwa zestawy SDK:
- JavaScript SDK, którego można używać z platformami JavaScript, takimi jak Svelte, React, Vue i Angular.
- Dart SDK dla Flutterowe aplikacje.
Najprostszym sposobem na rozpoczęcie jest pobierz PocketBase. Dostępnych jest kilka linków, więc upewnij się, że pobierasz ten, który jest zgodny z Twoim środowiskiem.
Po pobraniu rozpakuj i przejdź do folderu pocketbase. Następnie uruchom to polecenie w terminalu:
./pocketbase serw
To polecenie powinno uruchomić serwer WWW na tych trasach.
- Serwer: http://127.0.0.1:8090/
- API REST: http://127.0.0.1:8090/api/
- Interfejs administratora: http://127.0.0.1:8090/_/
Przejdź do http://127.0.0.1:8090/_/ Adres URL, aby utworzyć swoją pierwszą kolekcję za pomocą pulpitu administratora.
Tworzenie kolekcji w PocketBase
Przy pierwszym otwarciu interfejsu administratora pojawi się prośba o podanie adresu e-mail i hasła w celu utworzenia konta administratora.
Oto jak wygląda interfejs administratora:
Klikając Nowa kolekcja przycisk w interfejsie administratora otworzy panel kolekcji, który możesz wypełnić szczegółami, aby utworzyć nową kolekcję.
Oto jak stworzyć kolekcję o nazwie todos składającą się z tytułu i wypełnionych pól:
Kolekcja może być kolekcją podstawową lub kolekcją uwierzytelniającą. Kolekcja podstawowa jest domyślnym typem kolekcji i można jej używać do dowolnego typu danych. Kolekcja uwierzytelniania zawiera dodatkowe pola do zarządzania użytkownikami, takie jak nazwa użytkownika, adres e-mail i zweryfikowane.
Nie musisz używać interfejsu administratora, aby utworzyć kolekcję; możesz go utworzyć za pomocą internetowego interfejsu API. Dokumenty PocketBase dostarczać specyficzne dla zestawu SDK przykłady tworzenia kolekcji i zarządzania nimi za pośrednictwem interfejsu API. Możesz tworzyć, przeglądać, aktualizować, usuwać lub importować kolekcje.
Używanie PocketBase w aplikacji React
JavaScript SDK umożliwia interakcję z PocketBase z poziomu projektu React.
Aby kontynuować, zacznij od tworzenie projektu React.
Następnie zainstaluj PocketBase JavaScript SDK w swoim projekcie React przez npm:
npm install pocketbase --save
Następnie w app.js zaimportuj PocketBase i zainicjuj go.
import PocketBase z„kieszonkowy”;
konst pb = nowy PocketBase(' http://127.0.0.1:8090');
Aby zilustrować, w jaki sposób PocketBase integruje React, utworzysz funkcje pomocnicze dla aplikacji typu „do zrobienia”. Te funkcje będą tworzyć, aktualizować, pobierać i usuwać elementy.
Utwórz element do zrobienia
W app.js utwórz funkcję o nazwie addTodo.
konst dodajDo zrobienia = asynchroniczny (do zrobienia) => {
próbować {
konst rekord = czekać naczekać na pb.kolekcja(„todos”.utwórz (do zrobienia);
powrót nagrywać;
} złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
}
};
Ta funkcja dodaje nowy rekord do kolekcji todos.
Zaktualizuj element do zrobienia
Aby zaktualizować rekord w kolekcji todo, utwórz funkcję o nazwie updateTodo i użyj metody update.
konst aktualizacjaDo zrobienia = asynchroniczny (id_rekordu, do zrobienia) => {
próbować {
konst rekord = czekać na pb.kolekcja(„todos”).update (identyfikator_rekordu, do zrobienia);
powrót nagrywać;
} złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
}
};
Funkcja updateTodo wyszukuje element do wykonania na podstawie identyfikatora rekordu i aktualizuje go o nowe dane.
Usuń element do zrobienia
W app.js utwórz funkcję o nazwie deleteTodo, która usuwa rekord w kolekcji todo.
konst usuń zadanie = asynchroniczny (identyfikator_rekordu) => {
próbować {
czekać na pb.kolekcja(„todos”.delete (id_rekordu);
} złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
}
};
Odzyskaj element do zrobienia
Możesz pobrać pojedynczy element do wykonania lub wszystkie elementy z kolekcji.
Ta funkcja pobiera pojedynczą czynność do wykonania według identyfikatora:
konst getTodo = asynchroniczny (identyfikator_rekordu) => {
próbować {
konst rekord = czekać na pb.kolekcja(„todos”).getOne (identyfikator_rekordu, {
zwiększać: "relField1,relreld2.subRelField",
});
powrót nagrywać
} złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
}
};
Podczas gdy poniższa funkcja pobierze wszystkie rekordy w kolekcji todo:
konst getTodos = asynchroniczny (identyfikator_rekordu) => {
próbować {
konst rekordy = czekać na pb
.kolekcja(„todos”)
.pobierz pełną listę(200 /* rozmiar partii */, {
sortować: "-Utworzony",
});
powrót dokumentacja;
} złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
}
}
Za pomocą tych funkcji można tworzyć i aktualizować interfejs użytkownika aplikacji.
Aby uzyskać bardziej szczegółowe przykłady, zobacz API rejestrów PocketBase dokumentację lub wygenerowaną dokumentację API w „Interfejsie administratora > Kolekcje > Podgląd interfejsu API”. Powinieneś mieć dostęp do listy, przeglądania, tworzenia, aktualizowania, usuwania i dokumentacji w czasie rzeczywistym dla swojej kolekcji.
Dlaczego warto używać PocketBase
PocketBase to najlepszy backend dla małych i średnich projektów. Wymaga minimalnej konfiguracji i jest łatwy w użyciu. Oferuje dwa pakiety SDK klienta — JavaScript SDK i Dart SDK — i można go używać w aplikacjach internetowych i mobilnych.
PocketBase jest również samoobsługowy i można go hostować na lokalnym serwerze lub VPS. Chociaż nie obsługuje funkcji chmury, możesz użyć go jako frameworka Go i stworzyć własną aplikację z niestandardową logiką biznesową.