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]按钮,返回对应的结果。