Github每日精选(第63期):口袋数据库pocketbase
pocketbase
pocketbase
口袋数据库,在开发的过程中,我们经常有这样的需求,前端需要用到数据库的数据,但是前端不能直接获取,需要通过服务器进行一层的中转,其实有的时候这个工作量是很重复的,如果有现成的,能够只进行相应的配置,又具有一定的安全性,重复的工作量完全是可以避免的。
pocketbase
就是为了这个需求而生。
github的地址在这里。
PocketBase
是一个开源的 Go
后端,包括:
- 具有实时订阅的嵌入式数据库 ( SQLite )
- 内置文件和用户管理
- 方便的管理仪表板 UI
- 和简单的 REST-ish API
安装
最简单的入门方法是下载预构建的最小 PocketBase 应用程序,windows 的使用下载exe,下载的地址在这里:下载适用于 Windows。
启动服务器:
pocketbase.exe serve --debug
提示如下:
[0.00ms] SELECT {{_params}}.* FROM `_params` WHERE `key`='settings' LIMIT 1
[0.00ms] CREATE TABLE IF NOT EXISTS `_migrations` (file VARCHAR(255) PRIMARY KEY NOT NULL, applied INTEGER NOT NULL)
[0.00ms] SELECT count(*) FROM `_migrations` WHERE `file`='1640988000_init.go' LIMIT 1
[0.00ms] SELECT count(*) FROM `_migrations` WHERE `file`='1661586591_add_externalAuths_table.go' LIMIT 1
[0.00ms] SELECT {{_params}}.* FROM `_params` WHERE `key`='settings' LIMIT 1
> Server started at: http://127.0.0.1:8090- REST API: http://127.0.0.1:8090/api/- Admin UI: http://127.0.0.1:8090/_/
大概的意思是,我们有三个api的地址,我们打开第三个 Admin UI
,注册一个账号,进入管理员界面。
在这里我们已经建立了一个数据表,
总共三个字段。访问的规则如下:
这时候我们访问接口,就有相应的数据了。
做起接口来非常的方便,就像是在第三方上开通一个api
一样。
如果想直接使用代码进行控制的话,如下的代码可以进行路由的控制和返回:
package mainimport ("log""net/http""github.com/labstack/echo/v5""github.com/pocketbase/pocketbase""github.com/pocketbase/pocketbase/apis""github.com/pocketbase/pocketbase/core"
)func main() {app := pocketbase.New()app.OnBeforeServe().Add(func(e *core.ServeEvent) error {// add new "GET /api/hello" route to the app router (echo)e.Router.AddRoute(echo.Route{Method: http.MethodGet,Path: "/api/hello",Handler: func(c echo.Context) error {return c.String(200, "Hello world!")},Middlewares: []echo.MiddlewareFunc{apis.RequireAdminOrUserAuth(),},})return nil})if err := app.Start(); err != nil {log.Fatal(err)}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!