Kuiper REST api 允许您管理插件,例如创建、删除和列出插件。 请注意,删除插件将需要重新启动 kuiper 才能生效。 要更新插件,请执行以下操作:
该API接受JSON内容以创建新的插件。 每种插件类型都有一个独立的端点。 支持的类型为 ["源", "目标", "函数"]
。 插件由名称标识。 名称必须唯一。
POST http://localhost:9081/plugins/sources
POST http://localhost:9081/plugins/sinks
POST http://localhost:9081/plugins/functions
请求示例:
{
"name":"random",
"file":"http://127.0.0.1/plugins/sources/random.zip"
}
Random
,则此插件的名称为 random
。名为 random.zip 的源的示例 zip 文件
请注意,将在系统可能已经具有库或软件包的情况下运行 install.sh。 确保在运行之前检查路径。 下面是一个示例 install.sh,用于安装示例 sdk 库。
#!/bin/sh
dir=/usr/local/mysdk
cur=$(dirname "$0")
echo "Base path $cur"
if [ -d "$dir" ]; then
echo "SDK path $dir exists."
else
echo "Creating SDK path $dir"
mkdir -p $dir
echo "Created SDK path $dir"
fi
apt install --no-upgrade unzip
if [ -d "$dir/lib" ]; then
echo "SDK lib path $dir/lib exists."
else
echo "Unzip SDK lib to path $dir"
unzip $cur/mysdk.zip -d $dir
echo "Unzipped SDK lib to path $dir"
fi
if [ -f "/etc/ld.so.conf.d/myconfig.conf" ]; then
echo "/etc/ld.so.conf.d/myconfig.conf exists"
else
echo "Copy conf file"
cp $cur/myconfig.conf /etc/ld.so.conf.d/
echo "Copied conf file"
fi
ldconfig
echo "Done"
该 API 用于显示服务器中为插件类型定义的所有插件。
GET http://localhost:9081/plugins/sources
GET http://localhost:9081/plugins/sinks
GET http://localhost:9081/plugins/functions
响应示例:
["plugin1","plugin2"]
该 API 用于打印插件的详细定义。
GET http://localhost:9081/plugins/sources/{name}
GET http://localhost:9081/plugins/sinks/{name}
GET http://localhost:9081/plugins/functions/{name}
路径参数 name
是插件的名称。
响应示例:
{
"name": "plugin1",
"version": "1.0.0"
}
该 API 用于删除插件。 需要重启 kuiper 服务器才能生效。
DELETE http://localhost:8080/plugins/sources/{name}
DELETE http://localhost:8080/plugins/sinks/{name}
DELETE http://localhost:8080/plugins/functions/{name}
用户可以传递查询参数来决定是否应在删除后停止 Kuiper,以使删除生效。 参数是restart
,只有当值是1时,Kuiper 才停止。 用户必须手动重新启动它。
DELETE http://localhost:8080/plugins/sources/{name}?restart=1