RestAPI应用(WEB)
# FastWeb之RestAPI应用
- 适用平台:WEB(桌面)
# 1. 说明
利用FastWeb提供的RestAPI功能,实现读取数据并显示的功能。关于RestAPI的相关功能可参考接口开发。本范例使用示例中存在的接口CustList
进行演示操作。
通过本范例学习,可以掌握在FastWeb中调用RestAPI进行数据读取的功能。
# 2. 设计明细
开启FastWeb设计器,分别加入下插图之控件。或者点击左上角的[导入]
选择模板文件来打开对应模板。

①:TUgButton组件,控件名称为UgButton01
。
②:TUgButton组件,控件名称为UgButton02
。
③:TUgContainerPanel组件,控件名称为UgContainerPanel01
。
④:TUgClientDataSet组件,控件名称为UgClientDataSet01
。
⑤:TUgDataSource组件,控件名称为UgDataSource01
。
⑥:TUgDBGrid组件,控件名称为UgDBGrid01
。
⑦:TUgMemo组件,控件名称为UgMemo01
。
UgWebRunFrame属性设置
Height
:设置页面高度=600
。Width
:设置页面宽度=1200
。
①UgButton01属性设置
Caption
:设置标签显示的文本=获取Token
。
②UgButton02属性设置
Caption
:设置标签显示的文本=调用API
。
③UgContainerPanel属性设置
Align
:设置控件的对齐方式=alTop
。
⑤UgDataSource01属性设置
DataSet
:设置绑定的数据集名称=UgClientDataSet01
。
⑥UgDBGrid01属性设置
Align
:设置控件的对齐方式=alClient
。
⑦UgMemo01属性设置
Align
:设置控件的对齐方式=alRight
。
# 3. 程序设计
点击程序设计界面右下角的按钮,切换至单元选择界面,勾选需要使用的单元。该程式的程序需要引用Rest.Api
单元。
# 3.1. 程序初始设置
该程式无程序初始设置。
# 3.2. 事件设置
- ①UgButton01-OnClick事件
点击[获取Token]
按钮,获取当前当前登录用户的Token并返回结果。
//JScript
function UgButton01OnClick(sender)
//获取Token
{
UgMemo01.Lines.Insert(0,DateTimeToStr(Now()) + UGMM.LT(": 获取Token :") + GetToKen);
}
2
3
4
5
6
//PasScript
procedure UgButton01OnClick(sender: tobject);
//获取Token
begin
UgMemo01.Lines.Insert(0,DateTimeToStr(Now()) + ': 获取Token :' + GetToKen);
end;
2
3
4
5
6
// Make sure to add code blocks to your code group
- ②UgButton02-OnClick事件
点击[调用API]
按钮,调用指定API,将返回的结果显示在页面上。
//JScript
function UgButton02OnClick(sender)
//获取数据
{
var h=TIDHttp.Create(Nil);
var l=TStringList.Create;
Try{
h.HandleRedirects = true;
h.ReadTimeout = 5000;
l.Values["RestApi"] = "Script";
l.Values["Token"] = GetToKen;
l.Values["ApiName"] = "CustList";
//l.UGValues["Param1"] = "Value1"; 如果该接口需要传递参数可使用该方式进行填写,数字类型的参数值不需要添加引号
//l.UGValues["Param2"] = "Value2";
TextToHTTPEncode(l);
//showmessage(l.Text);
//showmessage(h.Post(UniSession.URL,l));
P_JSONToClientDataSet(h.Post(UniSession.URL,l),UgClientDataSet01);
UgMemo01.Lines.Insert(0,DateTimeToStr(Now()) + UGMM.LT(": 获取数据集"));
//d = JSONToData(h.Post(UniSession.URL,l));
//UgDataSource01.DataSet = d;
}
Finally{
h.Free;
l.Free;
}
}
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
//PasScript
procedure UgButton02OnClick(sender: tobject);
Var
h:TIDHttp;
l:TStringList;
d:TClientDataSet;
Begin
h:=TIDHttp.Create(Nil);
l:=TStringList.Create;
Try
h.HandleRedirects := true;
h.ReadTimeout := 5000;
l.Values['RestApi'] := 'Script';
l.Values['Token'] := GetToKen;
l.Values['ApiName'] := 'CustList';
//l.UGValues['Param1'] := 'Value1'; 如果该接口需要传递参数可使用该方式进行填写,数字类型的参数值不需要添加引号
//l.UGValues['Param2'] := 'Value2';
TextToHTTPEncode(l);
//showmessage(l.Text);
//showmessage(h.Post(UniSession.URL,l));
P_JSONToClientDataSet(h.Post(UniSession.URL,l),UgClientDataSet01);
UgMemo01.Lines.Insert(0,DateTimeToStr(Now()) + ': 获取数据集');
Finally
h.Free;
l.Free;
d.Free;
end;
end;
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
// Make sure to add code blocks to your code group
# 4. 运行结果
使用鼠标在FastWeb菜单,点击[保存至数据库]
按钮,将其保存至数据库,点击[调试运行]
确认能够正常打开。

在打开的程序中,点击[获取Token]
以及[调用API]
按钮,返回对应的结果。