PocketBase, veri doğrulama, gerçek zamanlı abonelikler ve kullanımı kolay bir REST API içeren gömülü bir SQLite veritabanından oluşan açık kaynaklı bir arka uçtur. Ayrıca medya dosyaları için kimlik doğrulama ve dosya depolama sunar.
PocketBase, tamamen taşınabilir olduğundan ve minimum kurulum gerektirdiğinden, zaman kısıtlamaları veya kolaylık nedeniyle bir arka uç oluşturmayı tercih etmeyeceğiniz projeler için mükemmeldir. Ayrıca Vue, Svelte, React, Angular ve Flutter gibi popüler teknolojilerle de bütünleşir.
PocketBase Tarafından Sağlanan Hizmetler
PocketBase, SupaBase gibi diğer arka uç sağlayıcılar tarafından sunulan hizmetlerin çoğunu sağlar.
- SQLite veritabanı: PocketBase, yerleşik bir SQLite veritabanı içerir. Bu, PostgreSQL veya MySQL gibi daha büyük veritabanları kullanan diğer arka uç sağlayıcılardan farklıdır. SQLite kullanımı PocketBase'i daha hafif hale getirir. Ayrıca bir API aracılığıyla gerçek zamanlı veritabanı olaylarına abone olabilirsiniz.
- kimlik doğrulama: PocketBase, e-posta/şifre kimlik doğrulamasını destekler ve OAuth2 kimlik doğrulaması Facebook, Google, GitLab ve GitHub aracılığıyla.
- Dosya depolama: PocketBase'i kullanarak yerel depolamaya veya bir S3 klasörüne fotoğraf, ses ve video dosyaları yükleyebilirsiniz.
- Yönetici kontrol paneli: Yönetici panosu, veritabanında koleksiyonlar oluşturmanıza ve bunları yönetmenize olanak tanır. Ayrıca dosyaları yükleyebilir, günlük dosyalarını görüntüleyebilir ve e-posta gönderme ayarını yapılandırabilirsiniz.
Belgelere göre PocketBase, 10.000'den fazla eşzamanlı ve kalıcı gerçek zamanlı olarak kolayca hizmet verebilir 6 sanal özel sunucudaki bağlantılar, onu küçük ve orta ölçekli için uygun fiyatlı bir arka uç seçeneği haline getirir uygulamalar.
PocketBase'in yalnızca dikey olarak ölçeklendiğini unutmayın. Bu, işlem gücünü artırmak için daha fazla CPU ve RAM eklemeniz gerektiği anlamına gelir. Büyük bir uygulamanız varsa, bir Firebase gibi arka uç sağlayıcı yatay ölçeklendirmeye izin verir.
PocketBase'e Başlarken
Şu anda PocketBase iki SDK sağlar:
- Svelte, React, Vue ve Angular gibi JavaScript çerçeveleriyle kullanabileceğiniz bir JavaScript SDK'sı.
- için bir Dart SDK'sı Flutter uygulamaları.
Başlamanın en kolay yolu, PocketBase'i indir. Birkaç bağlantı vardır, bu nedenle ortamınızla uyumlu olanı indirdiğinizden emin olun.
İndirdikten sonra, çıkartın ve cep tabanı klasörüne gidin. Ardından bu komutu bir terminalde çalıştırın:
./cep tabanı servisi
Bu komut, bu rotalarda bir web sunucusu başlatmalıdır.
- sunucu: http://127.0.0.1:8090/
- REST API'si: http://127.0.0.1:8090/api/
- Yönetici kullanıcı arayüzü: http://127.0.0.1:8090/_/
Şuraya git: http://127.0.0.1:8090/_/ Yönetici kontrol panelini kullanarak ilk koleksiyonunuzu oluşturmak için URL.
PocketBase'de Koleksiyon Oluşturma
Yönetici kullanıcı arayüzünü ilk açtığınızda, bir yönetici hesabı oluşturmak için bir e-posta adresi ve parola isteyecektir.
Yönetici kullanıcı arayüzü şu şekilde görünür:
tıklayarak Yeni koleksiyon Yönetici arayüzündeki düğmesi, yeni bir koleksiyon oluşturmak için ayrıntılarla doldurabileceğiniz bir koleksiyon paneli açar.
Başlık ve tamamlanmış alanlardan oluşan yapılacaklar adlı bir koleksiyonu şu şekilde oluşturabilirsiniz:
Bir koleksiyon, bir temel veya yetkilendirme koleksiyonu olabilir. Bir temel koleksiyon, varsayılan koleksiyon türüdür ve onu herhangi bir veri türü için kullanabilirsiniz. Kimlik doğrulama koleksiyonu, kullanıcıları yönetmek için kullanıcı adı, e-posta ve doğrulanmış gibi ek alanlar içerir.
Bir koleksiyon oluşturmak için yönetici kullanıcı arayüzünü kullanmanıza gerek yoktur; Web API'sini kullanarak bir tane oluşturabilirsiniz. PocketBase belgeleri API aracılığıyla koleksiyonların nasıl oluşturulacağına ve yönetileceğine ilişkin SDK'ya özgü örnekler sağlayın. Koleksiyonlar oluşturabilir, görüntüleyebilir, güncelleyebilir, silebilir veya içe aktarabilirsiniz.
Bir React Uygulamasında PocketBase Kullanma
JavaScript SDK'sı, bir React projesinden PocketBase ile etkileşime geçmenizi sağlar.
Takip etmek için, başlayarak React projesi oluşturma.
Ardından, PocketBase JavaScript SDK'yı React projenize npm aracılığıyla kurun:
npm cep tabanını kur -- kaydet
Ardından, app.js'de PocketBase'i içe aktarın ve başlatın.
içe aktarmak Cep Tabanı itibaren"cep tabanı";
sabit pb = yeni Cep Tabanı(' http://127.0.0.1:8090');
PocketBase'in React'i nasıl entegre ettiğini göstermek için bir yapılacaklar uygulaması için yardımcı işlevler oluşturacaksınız. Bu işlevler öğeleri oluşturur, günceller, alır ve siler.
Bir Yapılacak Öğe Oluştur
app.js'de addTodo adlı bir işlev oluşturun.
sabit ekleTodo = zaman uyumsuz (yapılacak) => {
denemek {
sabit kayıt = beklemekbeklemek pb.koleksiyon("todos").oluştur (yapılacak);
geri dönmek kayıt;
} yakalamak (hata) {
geri dönmek { hata: hata mesajı };
}
};
Bu işlev yapılacaklar koleksiyonuna yeni bir kayıt ekler.
Bir Yapılacak Öğeyi Güncelle
Yapılacaklar koleksiyonundaki bir kaydı güncellemek için updateTodo adlı bir işlev oluşturun ve update yöntemini kullanın.
sabit updateTodo = zaman uyumsuz (record_id, yapılacak) => {
denemek {
sabit kayıt = beklemek pb.koleksiyon("todos").update (record_id, yapılacak);
geri dönmek kayıt;
} yakalamak (hata) {
geri dönmek { hata: hata mesajı };
}
};
updateTodo işlevi, kayıt kimliğine göre yapılacak iş öğesini bulur ve onu yeni verilerle günceller.
Bir Yapılacak Öğeyi Sil
app.js'de, yapılacaklar koleksiyonundaki bir kaydı silen deleteTodo adlı bir işlev oluşturun.
sabit silTodo = zaman uyumsuz (kayıt_kimliği) => {
denemek {
beklemek pb.koleksiyon("todos").delete (kayıt_kimliği);
} yakalamak (hata) {
geri dönmek { hata: hata mesajı };
}
};
Bir Yapılacak Öğeyi Al
Koleksiyondan tek bir yapılacak iş öğesini veya tüm öğeleri alabilirsiniz.
Bu işlev, kimliğe göre tek bir yapılacak iş öğesini alır:
sabit getTodo = zaman uyumsuz (kayıt_kimliği) => {
denemek {
sabit kayıt = beklemek pb.koleksiyon("todos").getOne (record_id, {
genişletmek: "relField1,relField2.subRelField",
});
geri dönmek kayıt
} yakalamak (hata) {
geri dönmek { hata: hata mesajı };
}
};
Aşağıdaki işlev, yapılacaklar koleksiyonundaki tüm kayıtları alırken:
sabit getTodos = zaman uyumsuz (kayıt_kimliği) => {
denemek {
sabit kayıtlar = beklemek pb
.Toplamak("todos")
.getFullList(200 /* Parti boyutu */, {
düzenlemek: "-yaratıldı",
});
geri dönmek kayıtlar;
} yakalamak (hata) {
geri dönmek { hata: hata mesajı };
}
}
Uygulamanın kullanıcı arayüzünü oluşturmak ve güncellemek için bu işlevleri kullanabilirsiniz.
Daha ayrıntılı örnekler için bkz. PocketBase kayıtları API'si belgelere veya "Yönetici Kullanıcı Arayüzü > Koleksiyonlar > API Önizlemesi"nde oluşturulan API belgelerine bakın. Koleksiyonunuz için listeleme, görüntüleme, oluşturma, güncelleme, silme ve gerçek zamanlı belgelere erişebilmelisiniz.
PocketBase'i Neden Kullanmalısınız?
PocketBase, küçük ve orta ölçekli projeler için en iyi arka uçtur. Minimum kurulum gerektirir ve kullanımı kolaydır. Bir JavaScript SDK'sı ve bir Dart SDK'sı olmak üzere iki istemci SDK'sı sunar ve bunu web ve mobil uygulamalarda kullanabilirsiniz.
PocketBase ayrıca kendi kendine barındırılabilir ve onu yerel bir sunucuda veya bir VPS'de barındırabilirsiniz. Bulut işlevlerini desteklemese de Go çerçevesi olarak kullanabilir ve özel iş mantığıyla kendi uygulamanızı oluşturabilirsiniz.