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 以降では不要ですが、あっても害はありません。関連項目
- MySQL からの HTTP リクエスト — タイムアウト、エラー処理、およびレスポンスの読み取り
- MySQL からの Webhook 送信 — トリガーからリクエストを発行する
- REST API による行の補強 — クエリを外部サービスと結合する
- 拡張機能のインストール —
INSTALL EXTENSIONの仕組みと、サーバーがバンドルを探す場所 - 利用可能な拡張機能 — 完全なカタログ
- villagesql/vsql-http — ソース、ビルド手順、および既知の制限事項