用户定义函数(UDF)管理 API
除了在插件中定义函数,我们还支持用户单独定义函数(UDF)。目前,我们只支持 JavaScript UDF。用户可以通过 REST API 或者 CLI 管理 JavaScript 函数。您可以创建、列出、描述、删除和更新函数。
创建 UDF
使用此端点创建新函数。
shell
POST http://localhost:9081/udf/javascript
请求体应为一个 JSON 对象,包含以下字段:
- id:函数的唯一名称。此名称也必须在 script 字段中定义为函数。
- description:函数的简短描述。
- script:JavaScript 中的函数实现。
- isAgg:一个布尔值,表示函数是否为聚合函数。
以下是一个示例:
json
{
"id": "area",
"description": "计算面积",
"script": "function area(x, y) { return x * y; }",
"isAgg": false
}
列出 UDF
使用此端点显示服务器中定义的所有 JavaScript 函数。
shell
GET http://localhost:9081/udf/javascript
响应将是函数名称的列表。例如:
json
["area"]
描述 UDF
使用此端点获取函数的详细定义。
shell
GET http://localhost:9081/udf/javascript/{id}
将 {id} 替换为您要描述的函数的名称。响应将是一个 JSON 对象,包含函数的详细信息。例如:
json
{
"id": "area",
"description": "计算面积",
"script": "function area(x, y) { return x * y; }",
"isAgg": false
}
删除 UDF
使用此端点删除函数。
shell
DELETE http://localhost:9081/udf/javascript/{id}
将 {id} 替换为您要删除的函数的名称。请注意,您需要手动停止或删除使用 UDF 的任何规则,然后再删除它。正在运行的规则不会受到 UDF 删除的影响。
更新 UDF
JavaScript UDF 可以更新和热重载。请注意,必须重新启动正在运行的规则才能加载更新的函数。
shell
PUT http://localhost:9081/udf/javascript/{id}
将 {id} 替换为您要更新的函数的名称。请求体应与创建 UDF 时相同。如果 id 的函数不存在,将创建它。否则,将更新它。