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]
按鈕,返回對應的結果。