PocketBase 是一个开源的 Go 后端,包括:
- 具有实时订阅的嵌入式数据库 (SQLite)
- 内置文件和用户管理
- 方便的管理仪表板 UI
- 和简单的 REST 式 API
有关文档和示例,请访问 https://pocketbase.io/docs。
警告
请记住,PocketBase 仍在积极开发中 因此,在达到 v1.0.0 之前不能保证完全向后兼容性。
API SDK 客户端
与 PocketBase Web API 交互的最简单方法是使用官方 SDK 客户端之一:
- JavaScript – pocketbase/js-sdk(浏览器、Node.js、React Native)
- Dart – pocketbase/dart-sdk(Web、移动、桌面、CLI)
您还可以查看 https://pocketbase.io/docs/how-to-use/ 中的建议。
概述
用作独立应用程序
您可以从“发布”页面下载适用于您的平台的预构建可执行文件。下载后,解压存档并在解压的目录中运行。./pocketbase serve
预构建的可执行文件基于 examples/base/main.go 文件,并默认启用 JS VM 插件,允许使用 JavaScript 扩展 PocketBase(有关更多详细信息,请参阅使用 JavaScript 扩展)。
用作 Go 框架/工具包
PocketBase 作为常规 Go 库包分发,它允许您构建您自己的自定义应用程序特定业务逻辑,并且最后仍然有一个可移植的可执行文件。
这是一个最小的例子:
-
安装 Go 1.23+(如果您尚未安装)
-
创建一个新的项目目录,其中包含以下文件:
main.gopackage main import ( "log" "github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase/core" ) func main() { app := pocketbase.New() app.OnServe().BindFunc(func(se *core.ServeEvent) error { // registers new "GET /hello" route se.Router.GET("/hello", func(re *core.RequestEvent) error { return re.String(200, "Hello world!") }) return se.Next() }) if err := app.Start(); err != nil { log.Fatal(err) } }
-
要初始化依赖项,请运行 .
go mod init myapp && go mod tidy -
要启动应用程序,请运行 。
go run main.go serve -
要构建静态链接的可执行文件,您可以运行并启动创建的可执行文件。
CGO_ENABLED=0 go build./myapp serve
有关更多详细信息,请参阅使用 Go 进行扩展。
构建和运行存储库 main.go 示例
要构建最小的独立可执行文件,例如发布页面中的预构建可执行文件,您只需在目录中运行即可:go buildexamples/base
- 安装 Go 1.23+(如果您尚未安装)
- 克隆/下载存储库
- 导航到
examples/base - 运行 (https://go.dev/doc/install/source#environment
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build) - 通过运行 启动创建的可执行文件。
./base serve
请注意,目前纯 Go SQLite 驱动程序支持的构建目标是:
darwin amd64
darwin arm64
freebsd amd64
freebsd arm64
linux 386
linux amd64
linux arm
linux arm64
linux loong64
linux ppc64le
linux riscv64
linux s390x
windows 386
windows amd64
windows arm64
测试
PocketBase 带有单元和集成测试的混合包。 要运行它们,请使用标准命令:go test
go test ./...
另请查看测试指南,了解如何编写自己的自定义应用程序测试。


没有回复内容