呼叫FastWeb RestAPI
# TaskRunner 自定程序 - 呼叫FastWeb RestAPI
# 1. 说明
- 任务运行器 TaskRunner 通过自定程序,通过 RestAPI 访问 FastWeb,获取返回的结果。
- 示例使用的 FastWeb 是演示环境的地址,如您需要自行设计开发 RestAPI 用例,可参考这个示例进行扩展。
# 2. 设计程序
TaskRunner 的初始示例已包含 RestAPI调用获取GUID
自定程序。下面介绍创建自定程序的流程。
- 点击
自定程序
选项卡,在自定程序界面中点击新建
按钮,打开新建程序界面。 - 在新建程序界面,填写要设计的自定程序的基本信息。如下图所示。填写完成点击
保存
按钮。
- 返回自定程序列表界面,选择刚才创建的
JS016
自定程序,点击菜单栏中的设计
按钮,打开程序设计器界面。 - 在程序设计器界面中输入自定程序代码,代码示例如下。完成后,点击
保存
按钮。
//回调事件
var guid;
function OnRestAPIResultData(Sender,AResult)
{
//Showmessage("GUID:"+AResult);
guid = AResult;
UGMM.AddLog("GUID: " + guid);
}
//主程序
{
var rest = new TRestAPI(nil);
try{
//绑定事件
TRestAPI(rest).OnResultData = "OnRestAPIResultData";
//属性赋值
TRestAPI(rest).Caption = "获取GUID";
TRestAPI(rest).Server = iif(UgParams.Values["server"] == "","https://fastweb.isoface.cn:1443",UgParams.Values["server"]);
TRestAPI(rest).Url = UgParams.Values["url"];
TRestAPI(rest).ContentType = iif(UgParams.Values["contenttype"] == "","text/html",UgParams.Values["contenttype"]);
TRestAPI(rest).Method = iif(UgParams.Values["method"] == "",rmGET,rmPOST);
TRestAPI(rest).Params.Add("restapi=script");
TRestAPI(rest).Params.Add("apiname=" + iif(UgParams.Values["apiname"] == "","guid",UgParams.Values["apiname"]));
//调用
TRestAPI(rest).Send;
}
finally
{
//释放
rest.free;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

- 如需要测试效果,可在程序设计器界面中点击
运行
按钮进行测试。运行后,可在任务运行器的日志里查看输出的结果。
程序中定义的参数说明如下:
名称 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
server | RestAPI 服务的地址 | 是 | https://fastweb.isoface.cn:1443 |
url | RestAPI路径 | 否 | |
contenttype | 返回的数据的类型 | 否 | text/html |
method | 请求方法 | 否 | GET |
apiname | 请求的API名称(FastWeb使用) | 否 | guid |
# 3. 调用执行
设计完成的自定程序可使用以下方式来调用执行。
# 3.1. RestAPI
使用浏览器或RestAPI 客户端,访问以下地址,执行自定程序调用。请将 {ip}
修改为运行 TaskRunner 主机的IP地址,{port}
修改为 TaskRunner WebSocket 服务端监听的地址。
http://{ip}:{port}?restapi=script&taskname=JS016&evaluate=guid
1
如需要自定义参数,参照以下方式执行。其中将 {}
标识的参数值替换为目标参数值,部分非必填项目可不引用。
http://{ip}:{port}?restapi=script&taskname=JS016&evaluate=guid&server={server}&url={url}&contenttype={contenttype}&method={method}&apiname={apiname}
1
# 3.2. WebSocket
使用WebSocket客户端,连接至 TaskRunner 中的 WebSocket 服务端。向 WebSocket 服务端发送以下文本实现自定程序的调用。
{"action":"script","taskname":"JS016"}
1
如需要自定义参数,参照以下方式执行。其中将 {}
标识的参数值替换为目标参数值,部分非必填项目可不引用。
{"action":"script","taskname":"JS016","params":[{"name":"server","value":"{server}"},{"name":"url","value":"{url}"},{"name":"contenttype","value":"{contenttype}"},{"name":"method","value":"{method}"},{"name":"apiname","value":"{apiname}"}]}
1
# 3.3. MQTT
使用 MQTT 客户端,连接至 TaskRunner 连接的 MQTT 服务器。MQTT 客户端向 TaskRunner 订阅的主题发送以下文本实现自定程序的调用。
{"action":"script","taskname":"JS016"}
1
如需要自定义参数,参照以下方式执行。其中将 {}
标识的参数值替换为目标参数值,部分非必填项目可不引用。
{"action":"script","taskname":"JS016","params":["params":[{"name":"server","value":"{server}"},{"name":"url","value":"{url}"},{"name":"contenttype","value":"{contenttype}"},{"name":"method","value":"{method}"},{"name":"apiname","value":"{apiname}"}]}
1