メインコンテンツへスキップ
vsql_http はクエリの中から HTTP リクエストを送信します。トリガーが Webhook を呼び出し、SELECT が API から行を補強し、スケジュールされたイベントがサマリーをどこかへ送信できます。間にアプリケーション層はありません。libcurl 上に構築されており、すべてのレスポンスを JSON として返します。

インストール

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

追加される機能

すべてのリクエスト関数は、status、content_type、headers、および content の 4 つのフィールドを持つ 1 つの JSON オブジェクトを返します。接続拒否やタイムアウトなど、完了できないリクエストは NULL を返し、curl のエラーメッセージを含む警告を発生させます。
http_request の method 引数は、GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、および PATCH に大文字と小文字を区別せずに一致し、それらを大文字で送信します。その他のメソッドは、指定されたとおりに送信されます。

例

URL を取得し、レスポンスから 2 つのフィールドを読み取ります。
クエリ文字列を安全に組み立てます。
VillageSQL 0.0.6 以前では、レスポンスは binary 文字セットを持ちます。JSON 関数や JSON カラムはそれを拒否するため、上記の例から CONVERT を外すと、そこでは ERROR 3144 (22032): Cannot create a JSON value from a string with CHARACTER SET 'binary'. で失敗します。JSON_OBJECT() や JSON_ARRAY() の中では受け入れられますが、代わりに base64 でエンコードされます。これらのバージョンでは CONVERT(... USING utf8mb4) を残してください。0.0.7 以降では不要ですが、あっても害はありません。
リクエストは、それを送信したステートメントをデフォルトで最大 30 秒間ブロックします。これを短くできるのは http_request だけで、'{"timeout": 5}' のようにオプション引数で指定します。行ごとに 1 回の呼び出しは、テーブルスキャンを一連のネットワーク往復に変えてしまうため、大きな結果セットに対してこれらの呼び出しを行わないでください。

関連項目