长亭百川云 - 文章详情

37K star!实时后端服务,一个文件实现

IT咖啡馆

36

2024-08-09

IT 咖啡馆,探索无限可能!

恭喜你发现了这个宝藏,这里你会发现优质的开源项目、IT知识和有趣的内容。

如果你经常开发web类的的项目,那你一定经常会接触到后端服务,给项目找一个简单、好用的后端服务可以大大加速开发。

今天我们分享的开源项目,它可以作为SaaS或者是Mobile的后端服务,最简单情况只要一个文件,它就是:PocketBase



PocketBase  是什么



PocketBase是一个开源的Go后端框架,它以单个文件的形式提供了一个实时的后端服务。这个框架特别适合于快速开发小型到中型的Web应用和移动应用。它的设计哲学是简单性和易用性,使得开发者能够专注于他们的产品而不是后端的复杂性。

PocketBase包含以下功能:

  • 内置数据库(SQLite)支持实时订阅

  • 内置文件和用户管理

  • 方便的管理面板 UI

  • 简洁的 REST 风格 API





安装使用PocketBase



下载安装

首先你可以下载PocketBase的预构建版本,你可以在github的release页面下载到对应平台的包。

下载后,解压存档并 ./pocketbase serve 在解压的目录中运行。

启动完成后会3个web服务的路由:

默认情况下,PocketBase 在端口上运行 8090 。但您可以通过在 serve 命令后附加 --http--https 参数将其绑定到任何端口。

Admin panel

第一次访问管理仪表板 UI 时,它会提示您创建第一个管理员帐户。在管理页面里您可以完全使用 GUI 构建数据架构、添加记录并管理数据库。

API

它带有一个开箱即用的 API,可让您操作任何集合,还具有一个优雅的查询系统,可让您分页搜索记录。这将使您不必自己编写和维护同样无聊的 CRUD 操作,而可以更专注于产品特定的功能。

内置访问规则

PocketBase 可让您通过简单的语法直接从 GUI 定义对资源的访问规则。例如,这有助于定义访问范围和控制对用户特定数据的访问。同样,这将使您无需担心编写身份验证和授权代码。

SDK

使用PocketBase的API可以通过官方SDK,目前官方提供了JS SDK和Dart SDK。

  • JavaScript - pocketbase/js-sdk (浏览器和nodejs)

  • Dart - pocketbase/dart-sdk(网页、移动、桌面)

它们提供了用于连接数据库、处理身份验证、查询、实时订阅等的库,使开发变得简单。




开发定制应用


 

PocketBase 作为常规 Go 库包分发,允许您构建自己的自定义应用程序特定的业务逻辑,并且最后仍具有单个可移植的可执行文件。

这是一个简单的例子:

  1. 首先如果你没有Go的环境,那么需要安装 Go1.21以上版本

  2. 创建一个新的项目目录,并创建一个 main.go 文件,文件包含以下内容:

1package main
2
3
4import (
5    "log"
6    "net/http"
7
8
9    "github.com/labstack/echo/v5"
10    "github.com/pocketbase/pocketbase"
11    "github.com/pocketbase/pocketbase/apis"
12    "github.com/pocketbase/pocketbase/core"
13)
14
15
16func main() {
17    app := pocketbase.New()
18
19
20    app.OnBeforeServe().Add(func(e *core.ServeEvent) error {
21        // add new "GET /hello" route to the app router (echo)
22        e.Router.AddRoute(echo.Route{
23            Method: http.MethodGet,
24            Path:   "/hello",
25            Handler: func(c echo.Context) error {
26                return c.String(200, "Hello world!")
27            },
28            Middlewares: []echo.MiddlewareFunc{
29                apis.ActivityLogger(app),
30            },
31        })
32
33
34        return nil
35    })
36
37
38    if err := app.Start(); err != nil {
39        log.Fatal(err)
40    }
41}
  1. 初始化依赖项,请运行
1go mod init myapp && go mod tidy
  1. 要启动应用程序,请运行
1go run main.go serve。
  1. 要构建静态链接的可执行文件,您可以运行 CGO_ENABLED=0 go build ,然后使用 启动创建的可执行文件
1./myapp serve




总结



整体来说PocketBase是一个非常不错的后端服务,它兼顾了易用性和定制的灵活性,如果你有项目的需要或是想要自己开发一个SAAS的服务,都可以选择它来试试。




项目信息





往期推荐

3K star!LLM读不懂?那用可视化的方式来学吧

5K Star!这款开源神器让路由追踪直观可视

「Github一周热点32期」动画图解算法教程、用LLM写完整报告等5个项目






识别二维码关注我们

微信号- it-coffee

B站 - IT-咖啡馆

头条号- IT咖啡馆

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2