通過向?qū)J缴葾PI
數(shù)據(jù)服務(wù)支持通過向?qū)J交蚰_本模式生成API,相對于腳本模式,您無需編碼能力,可以可視化地配置API。本文為您介紹如何通過向?qū)J缴葾PI。
前提條件
配置API前,請先在配置數(shù)據(jù)源。
頁面配置數(shù)據(jù)源。詳情請參見背景信息
如果您存在個性化查詢需求,您可以通過自定義SQL腳本模式創(chuàng)建API,自行編寫API的查詢語句。在腳本模式下,支持多表關(guān)聯(lián)、復(fù)雜查詢和聚合函數(shù)等功能。例如,當(dāng)請求參數(shù)為某字段區(qū)間時,您可以使用腳本模式配置API。
進(jìn)入數(shù)據(jù)服務(wù)頁面
登錄DataWorks控制臺,切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的 ,在下拉框中選擇對應(yīng)工作空間后單擊進(jìn)入數(shù)據(jù)服務(wù)。
生成API
在服務(wù)開發(fā)頁面,鼠標(biāo)懸停至圖標(biāo),單擊 。
您也可以打開相應(yīng)的業(yè)務(wù)流程,右鍵單擊API,選擇
。在生成API對話框中,配置各項參數(shù)。
參數(shù)
描述
API模式
包括向?qū)J?/b>和腳本模式,此處選擇向?qū)J?/b>。
API名稱
支持中文、英文、數(shù)字、下劃線(_),且只能以英文或中文開頭,4~50個字符。
API Path
API存放的路徑,即相對于服務(wù)host,API的請求路徑。例如/user。
說明支持英文、數(shù)字、下劃線(_)和連字符(-),且只能以( /) 開頭,不得超過200個字符。
協(xié)議
支持HTTP和HTTPS。
如果您需要通過HTTPS協(xié)議調(diào)用API,請您發(fā)布API至網(wǎng)關(guān)后,在API網(wǎng)關(guān)控制臺綁定獨立域名,并上傳SSL證書。詳情請參見支持HTTPS。
請求方式
支持GET和POST。
說明當(dāng)請求方式選擇GET時,請求參數(shù)位置僅支持選擇QUERY。當(dāng)請求方式選擇POST時,請求參數(shù)位置支持選擇QUERY和BODY。
返回類型
僅支持JSON返回類型。
可見范圍
包括工作空間和私有:
工作空間:該API對本工作空間內(nèi)的所有成員可見。
私有:該API僅對API的負(fù)責(zé)人可見,且暫不支持授權(quán)。
說明如果設(shè)置可見范圍為私有,在目錄樹中,僅自己可見,工作空間內(nèi)的其他成員不可見。
標(biāo)簽
從標(biāo)簽列表中選擇相應(yīng)的標(biāo)簽,詳情請參見創(chuàng)建及管理API標(biāo)簽。
說明標(biāo)簽名稱支持漢字、英文、數(shù)字和下劃線(_),您最多可以設(shè)置5個標(biāo)簽,且每個標(biāo)簽不超過20個字符。
描述
對API進(jìn)行簡要描述,不得超過2000個字符。
目標(biāo)文件夾
存放API的目錄,可以在下拉列表選擇已創(chuàng)建的業(yè)務(wù)流程,選定后,會生成API的存放路徑。默認(rèn)格式為:“業(yè)務(wù)流程/業(yè)務(wù)流程名稱/API”,例如業(yè)務(wù)流程/ceshi/API。
單擊確定。
配置API
雙擊打開API的編輯頁面,在選擇表區(qū)域,配置數(shù)據(jù)源類型、數(shù)據(jù)源名稱、數(shù)據(jù)源環(huán)境、數(shù)據(jù)表名稱等參數(shù)。
不同數(shù)據(jù)源類型的配置參數(shù)略有不同,具體配置參數(shù)以界面為準(zhǔn)。
說明您需要提前在數(shù)據(jù)集成中配置好數(shù)據(jù)源,數(shù)據(jù)表下拉列表支持表名搜索。
標(biāo)準(zhǔn)模式工作空間支持在數(shù)據(jù)源環(huán)境配置項選擇訪問開發(fā)或生產(chǎn)環(huán)境數(shù)據(jù)源,詳情請參見必讀:簡單模式和標(biāo)準(zhǔn)模式的區(qū)別。
對于MaxCompute類的數(shù)據(jù)源表,您可以使用DataWorks數(shù)據(jù)服務(wù)的加速服務(wù),或MaxCompute的MCQA加速服務(wù)進(jìn)行加速,選擇加速服務(wù)進(jìn)行加速時,您需要先創(chuàng)建加速項,操作詳情請參見加速服務(wù)。
創(chuàng)建好API后,會自動跳轉(zhuǎn)至數(shù)據(jù)表配置頁面,您可以直接進(jìn)行配置。
在選擇參數(shù)區(qū)域,設(shè)置請求參數(shù)和返回參數(shù)。
您選擇數(shù)據(jù)表后,選擇參數(shù)區(qū)域會自動顯示該表的所有字段。根據(jù)自身需求,分別選中相應(yīng)的字段設(shè)為請求參數(shù)和設(shè)為返回參數(shù),添加至請求參數(shù)和返回參數(shù)列表中。
說明若數(shù)據(jù)源類型為HBase,選擇參數(shù)區(qū)域會自動顯示表中的所有列族(Family)。
如需實現(xiàn)按照列族的查詢(示例邏輯:
get 'Student', 'StudentA', 'Info' ,'Address'
),直接勾選目標(biāo)列族(Family)來設(shè)為返回參數(shù)即可。如需實現(xiàn)按照列名的查詢(示例邏輯:
get 'Student', 'StudentA', 'Info:age' ,'Info:grade'
),需要點列族(Family)操作中的新增列名按鈕,將目標(biāo)列名(Column)手動添加至列表中,并勾選目標(biāo)列名(Column)來設(shè)為返回參數(shù)。
如果您需要對字段進(jìn)行排序,單擊相應(yīng)字段后的添加到字段排序,將其添加至排序字段列表中。
您可以根據(jù)數(shù)據(jù)表中的指定字段對API的返回結(jié)果進(jìn)行排序。當(dāng)您的排序列表中有多個字段時,序號越小的字段,排序的優(yōu)先級越高,您可以通過上移和下移操作來調(diào)整排序字段的優(yōu)先級。對于每個排序字段,您均可以選擇升序或降序的方式進(jìn)行排序。
單擊API編輯頁面右側(cè)的請求參數(shù),配置各項參數(shù)。
說明進(jìn)行結(jié)果預(yù)覽前請設(shè)置API參數(shù)的示例值、默認(rèn)值、描述等信息。
盡量將有索引的字段設(shè)置為請求參數(shù)。
向?qū)J较虏恢С謱ψ侄闻渲脙蓚€參數(shù),形成取值區(qū)間,若想對一個字段配置多個參數(shù)可使用腳本模式生成API,詳情請參見:通過腳本模式生成API
參數(shù)
描述
參數(shù)名稱
請求參數(shù)的名稱,支持英文、數(shù)字、下劃線、連字符(-),且僅支持以英文開頭,不能超過64個字符。
綁定字段
默認(rèn)不可以修改。如果您需要修改綁定字段,請使用腳本模式。詳情請參見:通過腳本模式生成API。
參數(shù)類型
包括STRING、INT、LONG、FLOAT、DOUBLE和BOOLEAN。
參數(shù)位置
包括QUERY和BODY。
說明當(dāng)有一個或多個參數(shù)位置選擇BODY時,需要對BODY位置的參數(shù)進(jìn)一步設(shè)置Content-Type來定義調(diào)用方在消息體中的傳參格式。
Content-Type包括:
application/json;charset=utf-8(JSON格式)
application/xml;charset=utf-8(XML格式)
application/x-www-form-urlencoded;charset=utf-8(FORM格式)
操作符
操作符用于表示請求參數(shù)和實際賦值之間的關(guān)聯(lián)和比較。您可以選擇以下操作符:
等于:請求參數(shù)等于實際賦值。
LIKE:為請求參數(shù)搜索某種指定模式。
IN:為請求參數(shù)規(guī)定賦值集合。
NOT IN:請求參數(shù)不在賦值集合中。
NOT LIKE:請求參數(shù)不在該指定模式中。
!=:請求參數(shù)不等于實際賦值。
>:請求參數(shù)大于實際賦值。
<:請求參數(shù)小于實際賦值。
>=:請求參數(shù)大于或等于實際賦值。
<=:請求參數(shù)小于或等于實際賦值。
說明當(dāng)選擇表區(qū)域的數(shù)據(jù)源類型配置為Table Store時,操作符僅支持選擇等于。
是否必填
該請求參數(shù)是否必填。
示例值
該請求參數(shù)的示例值。
默認(rèn)值
該請求參數(shù)的默認(rèn)值。
描述
該請求參數(shù)的簡要說明。
單擊API編輯頁面右側(cè)的返回參數(shù),配置各項參數(shù)。
配置返回參數(shù)。
參數(shù)
描述
參數(shù)名稱
返回參數(shù)的名稱,支持英文、數(shù)字、下劃線、連字符(-),且僅支持以英文開頭,不能超過64個字符。
綁定字段
默認(rèn)不可以修改。
參數(shù)類型
包括STRING、INT、LONG、FLOAT、DOUBLE和BOOLEAN。
示例值
該返回參數(shù)的示例值。
描述
該返回參數(shù)的簡要說明。
在高級配置區(qū)域,設(shè)置是否返回結(jié)果分頁。
如果不開啟返回結(jié)果分頁,則API默認(rèn)最多返回2000條記錄。
如果返回結(jié)果可能超過2000條,請開啟返回結(jié)果分頁功能,開啟后,您可以進(jìn)入右側(cè)導(dǎo)航欄的服務(wù)資源組頁面,根據(jù)資源組類型設(shè)置單頁條數(shù)上限。
開啟返回結(jié)果分頁后,會自動增加以下公共參數(shù):
公共請求參數(shù)
pageNum:當(dāng)前頁號。
pageSize:頁面大小,即每頁記錄數(shù)。
公共返回參數(shù)
pageNum:當(dāng)前頁號。
pageSize:頁面大小,即每頁記錄數(shù)。
totalNum:總記錄數(shù)。
說明API允許不設(shè)置請求參數(shù),當(dāng)無請求參數(shù)時,必須開啟返回結(jié)果分頁。
配置過濾器。
當(dāng)您需要對API的請求參數(shù)進(jìn)行預(yù)處理或?qū)Σ樵兘Y(jié)果進(jìn)行二次加工時,您可以在API編輯頁面的右側(cè)導(dǎo)航欄中,單擊過濾器,根據(jù)需要勾選使用前置過濾器或使用后置過濾器,并選擇函數(shù)類型后,單擊前置過濾器或后置過濾器右側(cè)的下拉框選擇目標(biāo)函數(shù)(可添加多個函數(shù),執(zhí)行時會按添加順序?qū)?shù)進(jìn)行處理),完成后,您可以單擊API返回結(jié)果預(yù)覽查看使用過濾器后的結(jié)果是否符合預(yù)期。創(chuàng)建和使用過濾器詳情請參見:創(chuàng)建Aviator函數(shù)、創(chuàng)建Python函數(shù)。
說明當(dāng)使用Python函數(shù)作為過濾器時,請先開通DataWorks專業(yè)版及以上版本,并使用公共數(shù)據(jù)服務(wù)資源組。
當(dāng)使用Aviator函數(shù)作為過濾器時,無DataWorks版本限制,但需要使用獨享數(shù)據(jù)服務(wù)資源組。
若在過濾器的下拉列表中無法獲取目標(biāo)函數(shù),請檢查目標(biāo)函數(shù)是否已發(fā)布,或嘗試新建函數(shù)并發(fā)布。發(fā)布函數(shù)
配置服務(wù)資源組。
在API編輯頁面的右側(cè)導(dǎo)航欄中,單擊服務(wù)資源組,您可以在資源組類型區(qū)域配置API調(diào)用時使用的資源組類型。
支持您選擇獨享服務(wù)資源組或公共服務(wù)資源組,獨享服務(wù)資源組可以在列表中選擇目標(biāo)資源組名稱。公共服務(wù)資源組不可選擇資源組名稱,由DataWorks內(nèi)部自動維護(hù)。
在環(huán)境配置區(qū)域,您可設(shè)置內(nèi)存、超時時間和單次請求數(shù)據(jù)條數(shù)上限。
所選DataWorks服務(wù)資源組和API網(wǎng)關(guān)實例的類型不同,允許設(shè)置的超時時間上限不同:
API網(wǎng)關(guān)共享實例:公共服務(wù)資源組不超過30000ms,獨享數(shù)據(jù)服務(wù)資源組不超過30000ms。
API網(wǎng)關(guān)專享實例:公共服務(wù)資源組不超過30000ms,獨享數(shù)據(jù)服務(wù)資源組不超過90000ms。
說明API的響應(yīng)時間取決于SQL實際的執(zhí)行時間,請根據(jù)實際SQL的執(zhí)行時間合理配置API超時時間,避免因響應(yīng)超時導(dǎo)致請求失敗。
所選服務(wù)資源組類型不同,允許設(shè)置的單頁條數(shù)上限不同:
如果選擇公共服務(wù)資源組,開啟分頁后的每頁數(shù)據(jù)記錄最多支持2000條。
如果選擇獨享服務(wù)資源組,開啟分頁后的每頁數(shù)據(jù)記錄最多支持10000條。
說明API返回結(jié)果總數(shù)暫無上限控制,返回結(jié)果數(shù)與實際查詢結(jié)果數(shù)一致。
單擊工具欄中的圖標(biāo),保存API后,所選資源組將在測試時生效。
配置API后,您可以對其進(jìn)行測試。詳情請參見測試API。
測試成功后,單擊右上方的提交。
在API編輯頁面的右側(cè)導(dǎo)航欄中,單擊版本,找到待申請版本單擊申請發(fā)布跳轉(zhuǎn)到申請頁面,申請類型默認(rèn)為發(fā)布數(shù)據(jù)服務(wù)API,填寫申請原因后單擊申請權(quán)限完成發(fā)布申請。
說明工作空間定義審批流后需要走流程審批才可以發(fā)布API,詳情請參見:審批中心概述。
發(fā)布API后,服務(wù)資源組的配置即可在調(diào)用API時生效。
您還可以在服務(wù)開發(fā)頁面左側(cè)目錄樹中對目標(biāo)API進(jìn)行克隆和刪除等操作。您也可以在服務(wù)管理頁面,展開API列表,查看已發(fā)布API的詳情。詳情請參見查看、刪除、移動、克隆、批量操作、代碼搜索API。
轉(zhuǎn)換向?qū)J綖槟_本模式
您可以轉(zhuǎn)換向?qū)J缴傻腁PI為腳本模式:
在服務(wù)開發(fā)頁面,展開目標(biāo)API所在的 。
雙擊相應(yīng)的API名稱,打開該API的編輯頁面。
單擊工具欄中的圖標(biāo)。
在提示對話框中,單擊確認(rèn),您可以在編寫查詢SQL區(qū)域,查看轉(zhuǎn)換后的SQL語句。
重要數(shù)據(jù)服務(wù)僅支持轉(zhuǎn)換向?qū)J脚渲玫腁PI為腳本模式。
向?qū)J睫D(zhuǎn)換為腳本模式后,無法回退至向?qū)J健?/p>