資料服務 (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 |