自訂請求
簡介
功能簡介
自訂請求是指,基於現成的商業API進行自訂配置,或根據自身需求封裝API,靈活地滿足自身業務需求,從而實現API取數、資料驗證、資料分析、觸發事件等一系列的操作。
應用場景
在第三方平台購買API後,在 Jodoo 中使用API時,需要透過前端事件中的自訂請求方法進行配置。
預期效果
以查詢部門成員為例,自訂請求配置成功後效果如下所示:
設定步驟
設定入口
在「前端事件 > 執行動作」處的下拉單選中選擇「自訂請求」:
配置內容
1. 請求類型
當觸發欄位值發生改變時,會自動觸發 HTTP 請求,目前支援以下兩種類型的請求:
- GET 請求:用於取得服務端資料,將參數 (Query or Params) 在 URL 後面拼接,例如: ?code=123
- POST 請求:用於發送、送出,可以向指定的資源送出要被處理的資料。
2. URL
a. URL 是請求的伺服器地址。當使用 GET 請求時,需要把參數放在 URL 中,同時可以插入欄位給參數賦值。
b. URL 地址中,支援插入的欄位以及對應的解析值格式如下:
欄位名稱 | 解析值格式 |
單行文字 | 文字 |
數字控件 | 數字 |
單選 | 文字 |
複選框 | 文字(逗號拼接) |
下拉單選 | 文字 |
下拉複選框 | 文字(逗號拼接) |
時間日期 | 文字(UTC 格式時間字串) |
流水號 | 文字 |
成員單選 | 文字(成員編號 username) |
部門單選 | 文字(部門編號 dept_no) |
圖片 | 文字(圖片 URL)(多文件 URL 拼接方式空格分隔) |
附件 | 文字(附件 URL)(多文件 URL 拼接方式空格分隔) |
手寫簽名 | 文字(附件 URL)(多文件 URL 拼接方式空格分隔) |
子表單子欄位 | 對應控件格式 |
附註:
URL 長度取決於配置伺服器,如果過長將被切斷,導致部分資料參數傳輸失敗。
3. Header/Body
- 當請求類型為「GET」時,僅支援設定 Header 參數;
- 當請求類型為「POST」時,支援設定 Header 和 Body 參數。
兩種參數的設定方法如下所示:
a. Header設定
每個 Header 參數設定中,都包含 name 和 Value 的設定。其中,Value 中可以插入表單欄位,支援的欄位同【URL】 處一致。
附註:
每個自訂請求中最多可新增 50 個 Header 。
b. Body設定
根據調用API的不同,Body 參數可以設定為 JSON 和 x-www-form-urlencoded 兩種格式。
每個 Body 參數設定中,都包含 name 和 Value 的設定。其中,Value 中可以插入表單欄位,支援的欄位同【3. URL】 處一致。
附註:
每個自訂請求中最多可新增 50 個 Body 。
4. 返回值格式
返回值支援兩種格式:JSON 和 XML,兩種返回值格式對應的解析方式如下:
返回值格式 | 解析方式 |
JSON | JSON Path |
XML | XPath |
a. JSON Path
當返回範例如下時:
{
"result": "result的內容",
"testResult": {
"target": "target的內容"
},
"data": [
{
"key": "扎啤",
"value": "2"
},
{
"key": "炸雞",
"value": "4"
}
],
"array": [
"列表資料1",
"列表資料2",
"列表資料3",
"列表資料4",
"列表資料5"
]
}
對應返回值的 JSON Path 寫法如下:
內容 | 寫法一 | 寫法二 |
“result的內容” | $.result | $[“result”] |
“target的內容” | $.testResult.target | $[“testResult”][“target”] |
“列表資料1” | $.array[0] | $[“array”][0] |
“炸雞” | $.data[1].key | $[“data”][1][“key”] |
“2” | $.data[1].value | $[“data”][1][“value”] |
b. XPath
當返回範例如下時:
<results>
<result>result的內容</result>
<testResult>
<target>target的內容</target>
</testResult>
<data>
<key>扎啤</key>
<value>2</value>
<key>炸雞</key>
<value>4</value>
</data>
<array>列表資料1列表資料2列表資料3列表資料4列表資料5</array>
</results>
對應返回值的 XPath 寫法如下:
內容 | 寫法 |
“result的內容” | /results/result/text() |
“target的內容” | /results/testResult/target/text() |
“列表資料1” | /results/array[1]/text() |
“炸雞” | /results/data[2]/key/text() |
“2” | /results/data[1]/value/text() |
5. 返回值設定
返回值設定是指,將前端事件取得的資料賦值給表單欄位。
a. 點擊返回值設定下方的「點擊設定」:
b. 點擊「表單欄位及對應返回值」,在下拉單選中選擇需要設定返回值的欄位:
c. 對返回值欄位中配置賦值規則,可以直接賦值,也可以插入表單中的欄位進行賦值:
附註:
返回值的寫法由返回值格式決定,如果返回值格式為 JSON,需要按 JSON Path 的寫法;如果返回值格式為 XML,則需要按 XPath 的寫法。
d. 支援設定返回值的欄位及其對應的解析值格式如下:
欄位名稱 | 解析值格式 | 說明 |
單行文字 | 文字 | —— |
多行文字 | 長文字 | |
數字 | 數字 | |
時間日期 | 日期時間 | |
單選 | 文字 | |
複選 | 文字陣列 | [“選項1”,“選項2”,“選項3”] |
下拉單選 | 文字 | —— |
下拉複選框 | 文字陣列 | [“選項1”,“選項2”,“選項3”] |
子表單欄位 | 欄位對應格式 | 子表單為觸發欄位時,只可以返回值欄位只能是同一個子表單裏面的欄位;主表為觸發欄位時,可以把陣列寫入子表單,子表單的行數為陣列的行數 |
附註:
返回資料最大僅支援 256 KB。
e. 子表單填充方式
若在「新增表單欄位及對應返回值」處選擇了子表單中的欄位,則需要同步設定子表單欄位的填充方式。目前,Jodoo支援以下兩種子表單欄位填充方式:
填充方式 | 說明 |
直接填充到對應子欄位 | 前端事件觸發後,僅修改當前表對應的子欄位的值,不影響其他子欄位;重新觸發後,從子表單第一行開始替換對應子欄位的值。 |
先清空子表單再填充 | 前端事件觸發後,先清空子表單中已有的值,再將子欄位值填充到對應欄位中。 |