pocketbase - オープンソースのリアルタイム バックエンドを 1 つのファイルに

(Open Source realtime backend in 1 file)

Created at: 2022-07-05 14:06:21
Language: Go
License: MIT

PocketBase - 1 つのファイルにオープン ソース バックエンド

建てる 最新リリース Go パッケージのドキュメント

PocketBaseはオープン ソースの Go バックエンドであり、以下で構成されます。

  • リアルタイムサブスクリプションを備えた組み込みデータベース ( SQLite )
  • 組み込みのファイルとユーザー管理
  • 便利な管理ダッシュボード UI
  • シンプルなREST 風の API

ドキュメントと例については、https://pocketbase.io/docsにアクセスしてください。

⚠️Web API の定義は安定していると見なされますが、PocketBase はまだ活発に開発されているため、v1.0.0 に到達する前に完全な下位互換性が保証されないことに注意してください。

API SDK クライアント

API を操作する最も簡単な方法は、公式の SDK クライアントのいずれかを使用することです。

概要

PocketBase は、スタンドアロン アプリとして直接ダウンロードすることも、Go フレームワーク/ツールキットとして使用することもできます。これにより、独自のカスタム アプリ固有のビジネス ロジックを構築し、最後に単一の移植可能な実行可能ファイルを保持することができます。

インストール

# go 1.18+
go get github.com/pocketbase/pocketbase

Windows の場合、Windows レジストリの js MIME タイプが正しくないため、go 1.19+ を使用する必要がある場合があります ( issue#6を参照)。

package main

import (
    "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)
    }
}

ランニングとビルド

アプリケーションの実行/ビルドは、他の Go プログラムと同じです。ジャスト

go run
アンド
go build

PocketBase には SQLite が組み込まれていますが、CGO は必要ありません。

If CGO is enabled, it will use mattn/go-sqlite3 driver, otherwise - modernc.org/sqlite. You can enable and disable CGO by setting the

CGO_ENABLED
environment variable to
1
or
0
respectively.

クロス コンパイルを複雑にすることを犠牲にして、読み取り/書き込みクエリのパフォーマンスを本当に絞る必要がある場合にのみ、CGO を有効にします。

リリース ページにあるビルド済みのような最小限のスタンドアロン実行可能ファイルをビルドするには、ディレクトリ

go build
内で実行するだけです。
examples/base

テスト

PocketBase には、単体テストと統合テストが混在したバッグが付属しています。それらを実行するには、デフォルトの

go test
コマンドを使用します。

go test ./...

独自のカスタム アプリケーション テストを作成する方法については、テスト ガイドも参照してください。

安全

PocketBase 内にセキュリティの脆弱性を発見した場合は、pocketbase.io のサポートに電子メールを送信してください。

すべての報告は速やかに対処され、それに応じてクレジットが付与されます。

貢献する

PocketBase は、MITライセンスの下でライセンスされている無料のオープン ソース プロジェクトです。

次の方法で開発を続けることができます。

PocketBase は当初、私の他のオープン ソース プロジェクトであるPresentator ( #183を参照) の新しいバックエンドとして機能するために作成されたため、すべての機能要求は、最初に Presentator v3 に必要なものと一致することに注意してください。