創建API即錄入API的定義,需要錄入API的基本信息、服務信息、請求信息、和返回信息,然后對創建的API進行調試,及進行安全配置。經測試證明API可用后,可發布上線供用戶使用。
1 定義 API
在API網關控制臺中API列表頁面,單擊創建API,即進入API的創建和定義流程。
1.1 定義請求的基本信息
參數 | 描述 |
API分組 | 分組是API的管理單元,創建API之前您需要先創建分組,選擇分組即選擇Region。 |
API名稱 | 所創建的API的名稱。API名稱標識需在所屬分組內具有唯一性。 |
安全認證方式 | 目前支持阿里云APP、和無認證。
|
簽名算法 | 參與簽名的算法
|
描述 | 填寫API的相關描述。 |
1.2 定義API請求
定義用戶如何請求API,包括協議、請求Path、HTTP Method、入參請求模式和入參定義。
參數 | 描述 |
請求協議 | 支持HTTP、HTTPS。 |
請求Path | Path指相對于服務host,API的請求路徑。請求Path可以與后端服務實際Path不同,您可以隨意撰寫合法且具有明確語義的Path給用戶使用。您可以在請求Path中配置動態參數,即要求用戶在Path中傳入參數,同時您的后端可以不在Path中接收這些參數,可以映射為在Query、Header等位置接收。 |
HTTP Method | 支持標準的HTTP Method,可選擇PUT、GET、POST、DELETE、PATCH、HEAD、OPTIONS或ANY。 |
入參定義模式 | 可選入參映射(過濾未知參數)、入參映射(透傳未知參數)和入參透傳。
|
配置入參定義:定義您API的請求入參,即配置用戶需要在什么位置傳入什么參數。可選位置有Head、Query、Body、Path(Parameter Path),尤其當您在Path中配置了動態參數,那么在入參配置時需要對動態參數做配置說明。支持的參數類型有String、Integer、Boolean。
需要注意所有參數的名稱會校驗是否唯一。
您可以使用左側的快捷鍵快速調整參數順序。
您可以使用操作圖標下的移除選項,移除不需要的參數。
如果您在Path中配置了動態參數,存在參數位置為Parameter Path的同名參數。
設置參數校驗規則:您可以單擊操作圖標中的編輯更多配置校驗規則。如String的長度,Number的枚舉等等。網關會參照校驗規則對請求做初步校驗,如果入參不合法,則不會到達您的后端服務,大大的降低了后端服務的壓力。
1.3 定義后端服務信息
這部分主要是定義一些參數的前后端映射,具體描述的是您后端真實服務的API配置。用戶請求到達網關后,網關會根據您的后端配置映射為對應實際后端服務的請求形式,去請求您的后端。包括后端服務地址、后端Path、后端超時時間、參數映射、常量參數、系統參數。
后端基礎定義
參數 | 描述 |
后端服務類型 | 目前支持HTTP/HTTPS、函數計算、VPC、OSS、Mock五種類型。
說明 海外region及中國香港不支持新建HTTP/OSS類型后端服務。 |
VPC授權名稱 | 當您的后端服務在VPC中時,需要填寫創建VPC授權時設置的VPC授權名稱。 |
后端服務地址 | 后端服務的Host,可以是一個域名,也可以是http(s)://host:port的形式。填寫時,必須包含http://或https://。 |
后端請求Path | Path是您的API服務在您后端服務器上的實際請求路徑。若您后端Path需要接收動態參數,則需要聲明調用者需傳入參數的具體位置和參數名,即聲明映射關系。 |
HTTP Method | 支持標準的HTTP Method,可選擇PUT、GET、POST、DELETE、PATCH、HEAD、OPTIONS或ANY。 |
后端超時 | 指API請求到達網關后,網關去調用API后端服務的響應時間。由網關請求后端開始到網關收到后端返回結果。該值不能超過30秒。超過該值網關會放棄請求后端服務,并給用戶返回相應的錯誤信息。 |
配置后端服務參數: 網關支持參數在前端、后端的全映射,包括名稱映射和位置映射。位置映射包括Path、Header、Query、Body的混排映射。也就是說,您可以將您的后端服務通過映射完成包裝成更規范、更專業的API形態。這部分就是在聲明前后端API映射關系的。
配置常量參數:您可以配置常量參數。您配置的常量參數對您的用戶不可見,但是API網關會在中轉請求時,將這些參數加入到請求中的指定位置,再傳遞至后端服務,實現您的后端的一些業務需求。比如您需要網關每次請求您后端時都帶有參數abc,您可以直接將abc配置為常量參數。請求達到網關后,網關會自動在指定位置加上該參數再去請求您的后端。
配置系統參數:指API網關的系統參數。默認系統參數不會傳遞給您,但是如果您需要獲取系統參數,您可以在API里配置接收位置和名稱。具體內容如下表:
參數名稱 | 參數含義 |
CaClientIp | 發送請求的客戶端IP(若您配置了WAF、CDN等,則記錄的是回源IP,真實IP需要在X-Forwarded-For中查看) |
CaDomain | 發送請求的域名 |
CaRequestHandleTime | 請求時間(格林威治時間) |
CaRequestId | RequestId |
CaApiName | API名稱 |
CaHttpSchema | 用戶調用API使用的協議,http或者https |
CaProxy | 代理(AliCloudApiGateway) |
CaClientUa | 請求客戶端的User-Agent |
CaCloudMarketInstanceId | 云市場商品首次購買的實例ID |
CaAppId | 請求的APP的ID |
CaAppKey | 請求的APP的KEY |
CaAppExtendInfo | 請求的APP的拓展字段 |
CaStage | 請求的環境(RELEASE、TEST、PRE) |
CaInstanceId | API所屬的實例ID |
CaSourceVpcId | 客戶端IP所屬的Vpc |
可以在分組詳情中設置透傳HOST頭(域名頭),開啟后API網關會將請求域名透傳至后端,若沒有開啟,后端收到的是用戶在API網關填寫的后端HOST。示例如下:
示例中API分組綁定的請求HOST為xuemeng.XXXX.com,API后端HOST為apigatewayXXXXXXalicloudapi.com:8080,配置前后如下
透傳HOST頭(域名頭)開啟時:
Host: xuemeng.XXXX.com
透傳HOST頭(域名頭)未開啟時:
Host: apigatewayXXXXXXalicloudapi.com:8080
您需確保您錄入的所有參數的參數名稱全局唯一,包括Path中的動態參數、Headers參數、Query參數、Body參數(非二進制)、常量參數、系統參數。如果您同時在Headers和Query里各有一個名為name的參數,將會導致錯誤
1.4 定義返回結果
錄入返回ContentType、返回結果示例、失敗返回結果示例和錯誤碼定義。
2 API 調試
API定義錄入完成后,您可以在API調試頁面調試API,以確定API的可用性。
API創建、定義完成后,頁面自動跳轉到API列表頁。您可以通過此頁面按鈕,測試創建的API是否可用,請求鏈路是否正確。
單擊API名稱或管理按鈕,進入API定義頁面。
單擊左側導航欄中調試API。
輸入請求參數,單擊發送請求。
返回結果將顯示在右側頁面。
如果調試返回成功結果,則說明該API可以使用。
3 后續步驟
完成以上定義后和初步調試后,您就完成了API的創建。您可以發布API到測試、預發、線上環境,繼續調試或供用戶使用。還可以為API綁定客戶端簽名說明文檔等安全配置。