資料服務 (Data Services)
Data Service 是一個 API 的資料服務,讓您能夠更輕鬆地建立自定義 API。
透過 "Data Service API",您可以輕鬆地將 Canner Workspace 中的數據表轉化為可用的 API,無需編寫複雜的程式碼,只需使用介面上的選單操作,就能快速建立 API。
Data Service 設定流程步驟
Step 1: 進入 Data Service 頁面
首先,在側欄中,先選取要在哪個工作區建立 Data Service 。選取後,進入到 Data Services
的標籤頁中。
Step 2: 建立 API 基本資訊
點擊 Create a Data Service
按鈕。
設定該 Data Service 的名稱、資料表、描述、URL Path 以及 Cache 與否。
點擊 Cache
按鈕,顯示可設定的 Cache 排程
- 排程更新時間:可選擇永不重複或定期更新
- 定期更新時間:可選擇
分
、時
、天
、週
時間單位
Step 3: 設定 Parameters, Validation rules, Response Columns
點擊 +
按鈕,新增 Parameter。
設定 Parameter、Operator 與對應的 Validation Rules
- Required : 表示是否為必要參數
- Operator : API Parameters 抓取資料條件選項。(一般 API 只提供 equal to)
- Validation Rules : API Parameters 驗證條件,使用者填入不符合條件規則的參數值時會回傳錯誤。驗證條件可多選,若一個參數有多個條件,則必須同時滿足所有條件,才可成功請求 API。
Operator 與對應的 Validation Rules 支援項目請參考這
點擊 Add Operation
按鈕,新增 Operator,一個參數可有多個 Operators。
設定 Response column
Step 4: 模擬 API 查詢結果
系統會根據您在上一個步驟的設計模擬 API 查詢結果
在這一階段您可以根據自身需求客製化查詢語句,但強烈建議此一操作最好由技術人員執行,客製化後需再回到前一步驟將設定調整成與剛剛客製化的內容一致,避免 Data Service API 與 API 文件出現不一致情況
在 Customerize SQL 中系統您可以對多個資料表進行查詢,但 Data Service API 只支援單一資料表轉換成 API
點擊 Select Parameters
按鈕,輸入要模擬查詢的參數。
當使用 Customize SQL 時,請輸入參數以便預覽模擬查詢結果
Step 5: API 設定完成
回到 Data Services
的標籤頁,可以看到剛剛建立的 Data Service API。
- 點擊
View API Docs
,另外開啟 API 文件分頁, 並支援 API 文件下載。 - 編輯與刪除權限,僅限建立者和工作區 owner
API 的 semantic 設定 是跟著來源資料表,因此 Data Consumer 無法看到非 semantic 的API
Data Service API 權限屬於建立者與工作區owner,因此 API 建立者帳號移除前,需先清除其底下所有 API,方可完成帳號移除
支援的 Parameter Operations 與 Validation Rules
Parameter 的型別 | Operator | Validation Rules-1 | Validation Rules-2 | Validation Rules-3 |
---|---|---|---|---|
Boolean | eq(=) | x | x | x |
Integer, Fixed-precision, Floating-point | equal to (eq) | Max, Min | x | x |
greater than(gt) | x | x | x | |
greater than and equal to (gte) | x | x | x | |
less than (lt) | x | x | x | |
less than and equal to (lte) | x | x | x | |
String | equal to (eq) | Max, Min | Format (Regex Pattern) | enum |
like | Max, Min | Format (Regex Pattern) | x | |
in | Max, Min | Format (Regex Pattern) | x | |
Date | equal to (eq) | Format(YYYY-MM-DD) | x | x |
greater than(gt) | Format(YYYY-MM-DD) | x | x | |
greater than and equal to (gte) | Format(YYYY-MM-DD) | x | x | |
less than (lt) | Format(YYYY-MM-DD) | x | x | |
less than and equal to (lte) | Format(YYYY-MM-DD) | x | x | |
Timestamp | equal to (eq) | Format(YYYY-MM-DD HH:mm:ss) | x | x |
greater than(gt) | Format(YYYY-MM-DD HH:mm:ss) | x | x | |
greater than and equal to (gte) | Format(YYYY-MM-DD HH:mm:ss) | x | x | |
less than (lt) | Format(YYYY-MM-DD HH:mm:ss) | x | x | |
less than and equal to (lte) | Format(YYYY-MM-DD HH:mm:ss) | x | x |