vsql_http 从查询内部发出 HTTP 请求。触发器可以调用 webhook,SELECT
可以用 API 的数据充实各行,计划事件可以把摘要推送到某个地方,中间
不需要应用层。它基于 libcurl 构建,并以 JSON 返回每个响应。
安装
如果您使用安装脚本、Docker 镜像或发行版压缩包安装了 VillageSQL,vsql_http.veb 已经位于服务器的 lib/veb/ 目录中。
用一条语句将它安装到服务器中:
新增内容
每个请求函数都返回一个包含四个字段的 JSON 对象:status、
content_type、headers 和 content。无法完成的请求(例如连接被拒绝
或超时)返回 NULL,并抛出一条带有 curl 错误消息的警告:
http_request 的 method 参数不区分大小写地匹配 GET、HEAD、POST、PUT、
DELETE、CONNECT、OPTIONS、TRACE 和 PATCH,并以大写发送;其他任何方法
按原样发送。
示例
获取一个 URL,并从响应中读出两个字段:在 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 — 源代码、构建说明和已知限制