RestAPI整合
# FastWeb RestAPI整合
- 適用平臺:WEB(桌面),APP(移動端)
# 1. 簡介
FastWeb中也可以訪問第三方的RestAPI進行發送或者接收。訪問第三方API的功能是在模組設計階段進行設計的。如需要了解如何建立模組以及進入模組設計界面請查閱FastWeb快速上手。
FastWeb中有一套完整的第三方API管理方案,通過這套方案可以快速測試API的可用性,將模組中的程式集中起來統一進行管理,便於快速部署。
# 2. 操作說明
# 2.1. API供應商
API供應商用於存放基礎的Rest地址,可用於快速管理。
點選左側功能表欄的云服務工具-RestAPI整合
,打開RestAPI整合
界面,界面中點選 API供應商
打開對應界面,可在表頭篩選編輯框中輸入相關資訊進行快速篩選。
新增API供應商
如需要新增基礎Rest地址資訊的,點選[新增]
按鈕,打開新增API供應商
的界面,在其中輸入API供應商,API伺服器等相關資訊,輸入完成後,點選[儲存]
按鈕。
修改API供應商
如需要修改已有的基礎Rest地址資訊的,選擇要修改的介面專案,點選[修改]
按鈕,打開修改API供應商
界面,在其中修改API供應商、API伺服器等相關資訊,輸入完成後,點選[儲存]
按鈕。
刪除API供應商
如果需要刪除已建立的介面資訊,選擇要刪除的介面專案,點選[刪除]
按鈕,在打開的界面中會提示是否要刪除介面,點選[是]
則會刪除已選擇的介面,如果不需要刪除介面,點選[否]
按鈕以刪除介面。
# 2.2. RestAPI整合
RestAPI整合用於輸入API的詳細資訊(如請求路徑、請求參數等)。在RestAPI整合部分需要引入供應商的相關資訊。點選左側功能表欄中的云服務工具-RestAPI整合
,打開RestAOI整合
的界面。在表頭篩選框中輸入內容,可對其中的內容進行篩選。
新增介面(API)
如果需要新增第三方介面資訊的,點選[新增]
按鈕,打開新增API的對話方塊,在此界面中可以輸入API所需的相關資訊,輸入完成後點選[儲存]
按鈕。需要注意的是,URL部分的填寫需根據API供應商是否有選擇進行調整。如果API供應商有選擇的話在URL處只需填寫地址的路徑部分的資訊,否則的話就需要填寫完整的URL資訊。關於新增API部分的界面說明請參考FastWeb功能介紹。
修改介面(API)
如需要對介面資訊進行修改,選擇要修改的介面,點選[修改]
按鈕進入至修改界面中,修改需要設定的資訊。修改完成後點選[儲存]
按鈕儲存。其中的Script
部分為預處理程式資訊,如想詳細瞭解這部分的內容可參考TUgRestApi。
刪除介面(API)
如果要刪除介面(API),選擇要刪除的介面(API),點選[刪除]
按鈕,可刪除目前選擇的API專案。
API測試
在填寫完成API的資訊后,如果有需要測試API可用性的可選擇要測試的API專案,點選[API測試]
打開API測試頁面,按照第三方API的說明在相應的欄位填寫內容,填寫完成後,點選[Send]
按鈕,在Rest Server answer
處檢視反饋的結果,可以通過Script
中填寫一些預處理程式用於返回特定的值。如想詳細瞭解這部分的內容可參考TUgRestApi。
# 2.3. 使用示例
建立API並測試連線
假設我們以Myrtille API 連線獲取id (opens new window)中的API為例,首先我們要建立一個供應商,點選云服務工具-RestAPI整合
,在打開的界面中點選 [API供應商]
,在後續彈出的界面中點選[新增]
按鈕,在打開的頁面中新增以下內容:
點選切換至Body選項卡中,根據API說明的提示輸入以下內容,將其中使用{...}
括起來的內容整體替換為實際設定時配置的資訊。
{
"User":{
"Domain": "",
"UserName": "{username}",
"Password": "{password}"
},
"Host":{
"HosType": 0,
"SecurityProtocol": 0,
"IPAddress": "{client_server}"
},
"VM": null,
"AllowRemoteClipboard": false,
"AllowFileTransfer": false,
"AllowPrintDownload": true,
"AllowAudioPlayback": true,
"MaxActiveGuests": 2,
"StartProgram": null,
"GatewayURL": "http://{server}/Mytrille/"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
填寫完成後點選[儲存]
,然後選擇剛才建立的API,點選[API測試]
打開測試頁面,點選[Send]
按鈕,如果返回的內容有包含如下內容顯示的類似資訊,則API的測試完成。
在模組中運行
以上方式可將API資訊存入至API管理器中,如果需要在控制元件中引用這些API,可參考如下內容。
首先,按照FastWeb快速上手的方式建立一個模組,然後在其中置入一個TUgRestApi
。雙擊在設計區的此控制元件打開上圖所示的對話方塊。選擇剛才建立的選項,點選[OK]
按鈕,將API的資訊匯入至控制元件中。
設定發送請求相關的觸發事件,在事件中加入以下內容。
//JScript
UgRestApi01.Init(UgRestApi.Guid);
UgRestApi01.Send;
2
3
//PasScript
UgRestApi01.Init(UgRestApi.Guid);
UgRestApi01.Send;
2
3
// Make sure to add code blocks to your code group
同時設定其ResultData
事件,在結果中解析獲取到的token資訊並處理,此部分的內容可參考FastWeb開發手冊之綜合應用1。
//JScript
function UgRestApi01ResultData(sender,aresult)
//登錄
{
myrtilleAuthToken = StringReplace(aresult,"\"","");
mmLog.Lines.Add("auth_token:" + myrtilleAuthToken);
UgURLFrame.URL = "http://{{Server}}/Myrtille/?__EVENTTARGET=&cid=" + myrtilleAuthToken + "&connect=Connect%21";
}
2
3
4
5
6
7
8
//PasScript
procedure UgRestApi01ResultData(sender: tobject;aresult: string);
//登錄
begin
myrtilleAuthToken := StringReplace(aresult,'"','');
mmLog.Lines.Add('auth_token:' + myrtilleAuthToken);
UgURLFrame.URL := 'http://{{Server}}/Myrtille/?__EVENTTARGET=&cid='+ myrtilleAuthToken + '&connect=Connect%21';
end;
2
3
4
5
6
7
8
// Make sure to add code blocks to your code group
# 2.4. 注意事項
- Server位址列的末尾與Url編輯框中的開頭均不需要新增
/
。
# 3. 示例
以下我們以shinobi登錄的說明為例,說明在設定介面整合過程中的注意事項。如果尚未了解shinobi,請參閱shinobi說明 (opens new window),以下是shinobi登錄的介面說明:
- 請求地址:
http:/?json=true
請求方式:POST
ContentType:
application/json
請求主體Body
{
"machineID": "jsiqsju2wesqw2",
"mail": "admin@isoface.cn",
"pass": "admin",
"function": "dash"
}
2
3
4
5
6
參數名 | 示例值 | 參數型別 | 是否必填 | 參數描述 |
---|---|---|---|---|
machineID | jsiqsju2wesqw2 | String | 是 | 可以為任何字串 |
admin@isoface.cn | String | 是 | 登錄使用的使用者名稱 | |
pass | admin | String | 是 | 登錄密碼 |
function | dash | String | 是 | 登錄的模式,預設為dash |
- 響應成功示例
由於響應的示例內容過長,此處不進行展示。其中包含auth_token
與group key
,在之後需要進行使用。
- 響應失敗示例(登錄的使用者名稱或者密碼錯誤)
{
"ok": false
}
2
3
# 3.1. 分析
根據對上述介面的地址分析,可以將地址拆分成基礎地址與請求參數兩部分。其中?
之前的為RestAPI請求的基礎地址,其地址為shinobi使用的服務訪問地址;?
之後的為請求參數,比如此處的請求參數為json=true
。
點選[系統工具]
-[介面整合(Server)]
,打開介面整合
界面,輸入API供應商以及API伺服器的地址,填寫相關說明,點選[儲存]
。
點選[系統工具]
-[介面整合(API)]
,打開介面整合(API)
界面,在其中設定shinobi的RestAPI請求資訊。
點選[新增]
按鈕,打開新增API
界面,在其中輸入API的資訊。
API名稱與API描述部分可自行設定。
API供應商
處選擇剛才建立的API供應商。
上文的API說明中已指出使用的Content-Type
以及請求方法
,此處按照說明中提供的內容選擇。
URL
處設定額外的路徑資訊,上文的API中未包含,此處可留空。
Params
處填寫請求的URL中?
后的參數部分,填寫json
。
Body
處填寫請求的主體內容。
儲存后,點選[儲存]
按鈕,返回管理頁面。
找到剛才建立的API,點選[API測試]
,打開API管理器界面,在目前界面下,點選[send]
按鈕,觀察Rest Server answer
處顯示的內容,如果顯示的內容為下圖樣式的,則設定完成。