跳转到主要内容
vsql_rest 从数据库进程内部通过 HTTP 提供您的表。客户端用 URL 而不是 连接来读取行,用查询参数过滤行,并在 /rpc/ 下调用存储函数。 不需要编写应用程序,也不需要运行第二个进程。
此扩展使用了一个预览能力,因此 vsql_allow_preview_extensions 必须为 ON。请以 --vsql_allow_preview_extensions=ON 启动服务器,或运行 SET PERSIST vsql_allow_preview_extensions = ON。否则 INSTALL EXTENSION 会被拒绝。

安装

如果您使用安装脚本、Docker 镜像或发行版压缩包安装了 VillageSQL, vsql_rest.veb 已经位于服务器的 lib/veb/ 目录中。 用一条语句将它安装到服务器中:
确认它已存在:
要自行构建,请按照存储库中的 构建说明进行操作。

新增内容

它不添加 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 会使监听器无法启动。

另请参阅