メインコンテンツへスキップ
vsql_rest は、データベースプロセスの内部からテーブルを HTTP 経由で提供します。クライアントは接続ではなく URL で行を読み取り、クエリパラメーターで絞り込み、/rpc/ の下でストアド関数を呼び出します。書くべきアプリケーションも、実行すべき第 2 のプロセスもありません。
この拡張機能はプレビュー機能を使用するため、vsql_allow_preview_extensions が ON である必要があります。サーバーを --vsql_allow_preview_extensions=ON で起動するか、SET PERSIST vsql_allow_preview_extensions = ON を実行してください。そうでない場合、INSTALL EXTENSION は拒否されます。

インストール

インストールスクリプト、Docker イメージ、またはリリース tarball で VillageSQL をインストールした場合、vsql_rest.veb はすでにサーバーの lib/veb/ ディレクトリにあります。1 つのステートメントでサーバーにインストールします。
インストールされたことを確認します。
自分でビルドするには、リポジトリのビルド手順に従ってください。

追加される機能

SQL 関数は追加しません。SET GLOBAL で設定し、応答するすべてのリクエストは HTTP 経由で届きます。

例

リスナーは起動時にデータベースのレイアウトをキャッシュし、schema_ttl 秒間保持するため、先にテーブルを作成します。
次に、データベースとテーブルを指定してリスナーをオンにします。
HTTP 経由でテーブルを読み取ります。
クエリパラメーターで絞り込みます。
設定をオフにするとポートが閉じます。
デフォルトでは、認証は無効、すべてのテーブルが提供され、サポートされるすべての HTTP メソッド (GET、POST、PATCH、DELETE) が許可され、リスナーは起動した瞬間からすべてのインターフェイスにバインドします。ホストに到達できるものは何でも、スキーマ内のすべてのテーブルを読み書きできます。リスナーをオンにする前に、allowed_tables、table_methods、および require_auth を設定し、JWT のシークレットまたは公開鍵を構成し、ポートをファイアウォールの内側に置いてください。バインドアドレスの設定はありません。
SET PERSIST で書き込んだ設定は再起動後も残りますが、UNINSTALL EXTENSION はそれを削除します。アンインストールと再インストールの後は、すべての設定がデフォルトに戻り、再起動しても古い値は戻りません。
すべての文字列設定はサーバーを通して読み戻され、サーバーは最大 1022 バイトを返します。これより長い schema、allowed_tables、allowed_routines、table_methods、jwt_secret、または jwt_public_key は、すべてのリクエストを 500 で失敗させます。これより長い ssl_cert または ssl_key は、リスナーの起動を妨げます。

関連項目