《開源精選》是我們分享GitHub、Gitee等開源社區中優質項目的欄目,包括技術、學習、實用與各種有趣的內容。本期推薦的PocketBase 是一個開源后端框架,可用來學習搭建自己喜歡的任何東西。
特征
- 具有實時訂閱的嵌入式數據庫 ( SQLite )
- 內置文件和用戶管理
- 方便的管理儀表板 UI
- 和簡單的 REST-API
Collection是應用程序數據所在的位置。
內部Collection是簡單的 SQL 表,其中包含一些用于常見數據約束和訪問規則的附加信息。您可以從管理 UI 或 API 創建集合和記錄。
API 規則
API 規則是您的集合訪問權限和數據過濾器。每個集合有5個規則,對應具體的 API 動作:
- listRule
- viewRule
- createRule
- updateRule
- deleteRule
默認情況下,所有用戶模型都具有以下屬性:
- id (用戶唯一標識符)
- created (用戶創建的日期時間)
- updated (用戶更新日期時間)
- email (用戶電子郵件地址)
- verified (表示用戶郵箱是否經過驗證)
- lastResetSentAt (上次發送密碼重置電子郵件的日期時間)
- lastVerificationSentAt (發送驗證電子郵件的最后日期時間)
除了上述屬性之外,PocketBase 還允許您使用系統 profiles Collection添加任意數量的自定義字段。 用戶字段將附加到新 profile屬性下的每個用戶模型。
身份驗證方法
PocketBase 為用戶提供了多種認證方式:
- 通過電子郵件和密碼 (默認啟用)
- 通過 OAuth2 提供商 (google、Facebook、GitHub 或 GitLab)
客戶端集成 (SDK)
與 PocketBase API 交互的最簡單方法是使用官方 SDK 客戶端之一:
- JAVAScript SDK (瀏覽器和節點)
- Dart SDK (網絡、移動、桌面和 cli)
您可以在每個 API 部分找到使用示例,但大多數時候您將使用 Records、 Users、 Files和 Realtime API。
用作框架
與 Firebase、Supabase、Nhost 等其他后端解決方案的最大區別在于, PocketBase 實際上可以用作 Go 框架,使您能夠構建自己的自定義應用程序特定業務邏輯,并且最后仍然有一個可移植的可執行文件.
最小的 PocketBase 應用程序如下所示:
package main import ( "log" "github.com/pocketbase/pocketbase" ) func main() { App := pocketbase.New() if err := app.Start(); err != nil { log.Fatal(err) } }
開源協議:MIT license
開源地址:https://github.com/pocketbase/pocketbase