API提供者把API接口配置在API網關中,開放后端能力。創建API分以下步驟:
支持配置前端定義、安全配置和請求參數。
支持配置默認后端、策略后端和返回結果。
支持配置傳統策略和插件策略。
前端配置
步驟 1 進入API網關控制臺頁面。
步驟 2 根據實際業務在左側導航欄上方選擇API網關實例。
步驟 3 在左側導航欄選擇“API管理 > API分組”。
步驟 4 單擊 分組名稱 。
步驟 5 在“API運行”頁面,單擊“創建API”。
- 根據下表參數信息,配置前端定義。
創建API時,當API所屬分組、請求方法、請求路徑、匹配模式都重復時,API無法創建成功。
表 前端定義
信息項 描述 API名稱 API名稱,根據規劃自定義。建議您按照一定的命名規則填寫API名稱,方便您快速識別和查找。 所屬分組 API所屬的分組。 ?URL
前端地址由請求方法、請求協議、子域名和路徑組成。
l? ? 請求方法:GET、POST、DELETE、PUT、PATCH、HEAD、OPTIONS、ANY。其中ANY表示該API支持任意請求方法。
l? ? 請求協議:HTTP、HTTPS、HTTP&HTTPS,傳輸重要或敏感數據時推薦使用HTTPS。
API網關支持WebSocket數據傳輸,請求協議中的HTTP相當于WebSocket的ws,HTTPS相當于WebSocket的wss。
l? ? 子域名:所在分組的調試域名。
l? ? 路徑:接口請求的路徑。請求路徑可以包含請求參數,請求參數使用{}標識,例如/a/{b},也可以通過配置“+”號做前綴匹配,例如:/a/{b+}。注意,請求路徑中的字母區分大小寫。
網關響應
網關響應指未能成功處理API請求,從而產生的錯誤響應。
API網關提供默認的網關響應(default)。如果您需要自定義響應狀態碼或網關響應內容,可在API分組管理中新增網關響應,其中響應內容符合JSON格式即可。
匹配模式
分為兩種模式:
l? ? 絕對匹配:調用的請求Path固定為創建時填寫的API請求Path。
l? ? 前綴匹配:調用的請求Path將以創建時填寫的API請求Path為前綴,支持接口定義多個不同Path。
例如,請求路徑為/test/AA,使用前綴匹配時,通過/test/AA/CC可以訪問,但是通過/test/AACC無法訪問。
說明
使用前綴匹配時,匹配剩余的路徑將透傳到后端。
? ? ?例如,使用前綴匹配,前端請求路徑定義為/test/,后端請求路徑定義為/test2/,通過/test/AA/CC訪問API,則后端收到的請求url為/test2/AA/CC。
當兩個API的所屬分組、請求方法、請求路徑都相同時,優先調用匹配模式為絕對匹配的API。
標簽
標簽主要用于對API添加分類屬性,方便在創建了大量API后,快速過濾和查找。
描述
API的描述。
內容格式類型
是否開啟API請求的內容格式類型,開啟后APIG會按照選擇的內容格式類型向后端傳輸API請求。支持選擇“application/json”、“application/xml”、“text/plain”和“multipart/form-data”。選擇內容格式類型前,請確保后端服務支持待選擇的內容格式類型。
請求體內容描述
填寫API請求中請求體的描述信息,用于幫助API調用者理解如何正確封裝API請求。
- 根據下表參數信息,配置安全配置。
表 安全配置
信息項 描述 類型
API類型:
l? ? 公開:選擇“公開”類型時,API支持上架。
l? ? 私有:選擇“私有”類型時,當該API所在分組上架時,該API不會上架。
安全認證
API認證方式:
l? ? APP認證:表示由API網關服務負責接口請求的安全認證。推薦使用APP認證方式。
l? ? IAM認證:表示借助IAM服務進行安全認證。
l? ? 自定義認證:用戶有自己的認證系統或服務(如使用OAuth認證),可選擇“自定義認證”。
l? ? 無認證:表示不需要認證。
注意須知
認證方式為IAM認證時,任何API網關租戶均可以訪問此API,可能存在惡意刷流量,導致過量計費的風險。
認證方式為無認證時,任何公網用戶均可以訪問此API,可能存在惡意刷流量,導致過量計費的風險。
認證方式為自定義認證時,需要在函數服務中寫一段函數,對接用戶自己的認證系統或服務。如果當前Region沒有上線函數工作流服務,則不支持自定義認證。
支持簡易認證
僅當“安全認證”選擇“APP認證”時可配置。
簡易認證指APP認證方式下調用API時,在HTTP請求頭部消息增加一個參數X-Apig-AppCode,而不需要對請求內容簽名,API網關也僅校驗AppCode,不校驗請求簽名,從而實現快速響應。
注意僅支持HTTPS方式調用,不支持HTTP方式。
說明如果首次創建API未開啟簡易認證,那么之后開啟簡易認證,需要重新發布API。
支持雙重認證
僅當“安全認證”選擇“APP認證”或“IAM認證”時可配置。
是否對API的調用進行雙重安全認證。如果選擇啟用,則在使用APP認證或IAM認證對API請求進行安全認證時,同時使用自定義的函數API對API請求進行安全認證。
自定義認證
僅當“安全認證”選擇“自定義認證”時需要配置。
自定義認證需要提前創建,可單擊右側的“新建自定義認證”鏈接創建。
支持跨域CORS
是否開啟跨域訪問CORS(cross-origin resource sharing)。
CORS允許瀏覽器向跨域服務器,發出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制。
CORS請求分為兩類:
l? ? 簡單請求:頭信息之中,增加一個Origin字段。
l? ? 非簡單請求:在正式通信之前,增加一次HTTP查詢請求。
開啟CORS(非簡單請求)時,您需要單獨創建一個“請求方法”為“OPTIONS”的API。
3.(可選)根據實際需要定義API的請求參數,請求參數定義見下表。
表 請求參數
信息項 描述 參數名
參數的名稱,如果參數在“Path”位置,參數名稱會同步“路徑”中的名稱。
說明
參數名不能是x-apig-?、x-sdk-開頭,不區分大小寫。
參數名不能是x-stage,不區分大小寫。
參數位置為HEADER時,參數名不能是“Authorization”和“X-Auth-Token”,不區分大小寫,也不支持下劃線。
參數類型
字段的類型,包含STRING和NUMBER。
說明入參如果為boolean,請選擇STRING。
必填
請求API時,此參數是否為必填。如果選擇“是”,API網關將校驗請求中是否包含此參數,如果不包含,則拒絕該請求。
透傳
請求參數是否透傳到后端服務。
枚舉
請求參數的枚舉值,請求參數的值只能從枚舉值中選擇,多個枚舉值間用英文逗號隔開。
默認值
“必填”為“否”時,默認值生效。請求中不包含此參數時,API網關自動增加默認值發送給后端服務。
字節限制
l? ? 最大長度/最大值:“類型”為“STRING”時,設置參數值的最大字符串長度,“類型”為“NUMBER”時,設置參數值的最大值。
l? ? 最小長度/最小值:“類型”為“STRING”時,設置參數值的最小字符串長度,“類型”為“NUMBER”時,設置參數值的最小值。
示例
參數值的填寫示例。
描述
對于此參數的描述。
步驟 5 單擊“下一步”,進入后端配置。
后端配置
支持定義多個策略后端,即滿足一定條件后轉發給指定的API后端服務,用以滿足不同的調用場景。例如為了區分普通調用與特殊調用,可以定義一個“策略后端”,通過調用方的源IP地址,為特殊調用方分配專用的后端服務。
除了定義一個默認的API后端服務,一個API共可以定義5個策略后端。
步驟 1 定義默認后端。
添加策略后端前必須定義一個默認后端,當不滿足任何一個策略后端的API請求,都將轉發到默認的API后端。
在“后端配置”頁面,選擇API后端服務類型。
后端服務類型有HTTP&HTTPS和Mock,具體參數描述見下表。
說明
在后端服務還不具備的場景下,可以使用Mock模式,將預期結果固定返回給API調用方,方便調用方進行調試驗證。
表 HTTP&HTTPS類型定義后端服務
信息項 描述 負載通道
是否使用負載通道訪問后端服務。如果選擇“使用”,您需要提前創建負載通道。
URL
URL地址由請求方法、請求協議、負載通道/后端服務地址和路徑組成。
l? ? 請求方法
GET、POST、DELETE、PUT、PATCH、HEAD、OPTIONS、ANY,其中ANY表示該API支持任意請求方法。
l? ? 請求協議
HTTP或HTTPS,傳輸重要或敏感數據時推薦使用HTTPS。
說明
API網關支持WebSocket數據傳輸,請求協議中的HTTP相當于WebSocket的ws,HTTPS相當于WebSocket的wss。
定義的后端服務協議須與用戶的后端業務協議保持一致。
l? ? 負載通道(可選)
僅在使用負載通道時,需要設置。選擇已創建的負載通道名稱。
說明負載通道中,云服務器的安全組必須允許100.125.0.0/16網段訪問,否則將導致健康檢查失敗及業務不通。
l? ? 后端服務地址(可選)
僅在不使用負載通道時,需要設置。
填寫后端服務的訪問地址,格式:“主機:端口”。主機為后端服務的訪問IP地址/域名,未指定端口時,HTTP協議默認使用80端口,HTTPS協議默認使用443端口。
如果后端服務地址中需要攜帶環境變量,則使用“#變量名#”的形式將環境變量添加到后端服務地址中,如#ipaddress#。支持添加多個環境變量,如#ipaddress##test#。
l? ? 路徑
后端服務的路徑,即服務的uri,可以包含路徑參數,以{路徑參數}形式表示,比如/getUserInfo/{userId}。
如果請求路徑中含有環境變量,則使用#變量名#的方式將環境變量定義到請求路徑中,如/#path#。支持創建多個環境變量,如/#path##request#。
自定義host頭域
僅在使用負載通道時,可設置。
在請求被發送到負載通道中主機前,允許您自定義請求的host頭域,默認將使用請求中原始的host頭域。
后端超時(ms)
后端服務請求的超時時間,可填寫范圍1ms~60000ms。
如果在API調試過程中,遇到后端響應超時之類的錯誤,請適當調大后端超時時間,以便排查原因。
說明如果當前的超時時間范圍不能滿足實際業務需求,請在實例配置參數中修改超時時間上限,可修改范圍為1ms~600000ms。如果您修改了超時時間上限,需要同步修改此處的超時時間。
重試次數
后端服務請求失敗后的重試次數,默認值為0,取值范圍-1~10。
l? ? 值為-1時,表示不開啟重試功能,但除POST和PATCH外的其他請求類型會默認重試1次。
l? ? 值為0-10時,表示開啟重試功能,并根據設置的值執行重試。當值為0時,不重試。
使用負載通道時,重試次數應小于負載通道中已啟用的后端服務器個數。
TLS雙向認證
僅在協議為“HTTPS”時,可設置。
選擇是否在API網關和后端服務間啟用雙向認證,如果選擇“使用backend_client_certificate配置的證書做客戶端認證”,您需在實例的“配置參數”中提前配backend_client_certificate證書。
后端認證
當您的后端服務需要對API調用增加自己的認證,則開啟后端認證。
后端認證需要先添加一個自定義認證,自定義認證通過函數服務實現,在函數服務中編寫一個函數,實現您的認證鑒權流程,或者使用函數調用您的統一鑒權服務。
說明后端認證依賴函數服務,此功能僅在部分區域開放。
表 Mock類型定義后端服務
信息項 描述 Mock自定義返回碼
選擇API響應的HTTP狀態碼。
Mock返回結果
Mock一般用于開發調試驗證。在項目初始階段,后端服務沒有搭建好API聯調環境,可以使用Mock模式,將預期結果固定返回給API調用方,方便調用方進行項目開發。
后端認證
選擇相關的后端認證。
添加header參數
自定義API響應的header參數。
單擊“添加header參數”,并填寫參數名、參數值和參數描述。

說明
在URL中配置了變量標識后,在API調試頁面將無法調試。
如果在URL中設置變量,那么必須在待發布環境上配置變量名和變量值,否則變量無法賦值,API將無法正常調用。
變量名嚴格區分大小寫。
步驟 2 (可選)配置默認后端的后端服務參數,將調用API時傳入的請求參數映射到后端服務請求的對應位置。如未定義請求參數,可直接跳過此步驟。
- 在“后端服務參數”下,可通過以下任意一種方法添加后端服務參數。
- 單擊“導入入參定義”,把所有已定義的API請求參數添加到后端服務參數。
- 單擊“添加后端參數映射”,按需逐個添加后端服務參數。
- 根據后端服務實際的參數名稱和參數位置修改映射關系,如下圖 所示。
圖 配置后端服務參數

a. 后端參數在“PATH”位置,那么參數名稱需要和“路徑”中的名稱相同。
b. 調用API的請求參數名稱、位置可以與后端參數名稱、位置不同。
說明
參數名不能是x-apig- 、x-sdk-開頭,不區分大小寫。
參數名不能是x-stage,不區分大小寫。
參數位置為HEADER時,參數名不區分大小寫,也不支持下劃線開頭。
c. 如上圖,test01和test03在調用API時分別配置于PATH和QUERY位置,后端服務通過映射,將在HEADER位置接收test01和test03的值。test02在調用API時配置于HEADER位置,后端服務通過映射,將在PATH位置以參數名test05來接收test02的值。
假設test01為aaa,test02為bbb,test03為ccc。
API調用請求:
curl -ik -H 'test02:bbb' -X GET //example.com/v1.0/aaa?test03=ccc
后端服務請求:
curl -ik -H 'test01:aaa' -H 'test03:ccc' -X GET //example.com/v1.0/bbb
步驟 3 (可選)配置默認后端的常量參數。如果后端服務需要接收固定的常量信息,可以通過設置常量參數來實現。API網關向后端服務發送請求時,將常量參數添加到請求的指定位置,然后將請求發送給后端服務。
在“常量參數”下,單擊“添加常量參數”,添加后端服務請求的常量參數。
注意常量參數會明文展示,為防止信息泄露,請謹慎配置。
表 常量參數配置
信息項 描述 常量參數名
填寫常量參數的名稱。“參數位置”為“PATH”時,參數名需要與“路徑”中的參數名稱一致。
說明
參數名不能以x-apig-?、x-sdk-開頭,不能是x-stage,不區分大小寫。
參數位置為HEADER時,參數名不支持下劃線開頭,不區分大小寫。
參數位置
選擇常量參數在后端服務請求中的位置,可選擇“PATH”、“HEADER”和“QUERY”。
參數值
填寫常量參數的值。
描述
填寫常量參數的描述信息。
說明
API網關將包含常量參數的請求發送給后端服務前,會對特殊參數值進行百分號編碼,請確保后端服務支持百分號編碼。例如,參數值[api],在百分號編碼后變為%5Bapi%5D。
對于PATH位置的參數值,API網關會對如下字符進行百分號編碼:ASCII碼為0到31的字符、?、>、<、/、%、#、"、[、\、]、^、`、{、|、}、空白符、ASCII碼為127到255的字符。
對于QUERY位置的參數值,API網關會對如下字符進行百分號編碼:ASCII碼為0到31的字符、>、=、<、+、&、%、#、"、[、\、]、^、`、{、|、}、空白符、ASCII碼為127到255的字符。
步驟 4 (可選)配置默認后端的系統參數。如果后端服務需要接收系統運行時產生的參數信息,如網關內置參數、前端認證參數和后端認證參數等,可以通過設置系統參數來實現。API網關向后端服務發送請求時,將系統參數添加到請求的指定位置,然后將請求發送給后端服務。
- 在“系統參數”下,單擊“添加系統參數”,添加后端服務請求的系統參數。
表 系統參數配置
信息項 描述 系統參數類型
選擇系統參數的類型。
l? ? 網關內置參數:支持配置的系統參數。
l? ? 前端認證參數:前端自定義認證返回結果中的參數。在前端配置中,“安全認證”選擇“自定義認證”時,才可以選擇此參數。
l? ? 后端認證參數:后端自定義認證返回結果中的參數。在后端配置中,“后端認證”開啟時,才可以選擇此參數。
系統參數名
填寫系統參數的名稱。
l? ? “系統參數類型”為“網關內置參數”時,支持選擇如下參數:
sourceIp:API調用者的源地址。
stage:API調用的部署環境。
apiId:API的ID。
appId:API調用者的APP ID。
requestId:當次調用API所生成的請求ID。
serverAddr:網關服務器的地址 。
serverName:網關服務器的名稱。
handleTime:本次調用API的處理時間。
providerAppId:API提供者的憑據ID。
apiName:API的名稱,需要發布API后才可使用此參數。
appName:調用API所使用的憑據名稱。
l? ? 系統參數類型為“前端認證參數”或“后端認證參數”時,支持自定義參數,但是此參數必須為自定義認證返回結果中的參數。
自定義認證函數的編寫以及返回結果參數的獲取方法,請參考。
后端參數名稱
填寫系統參數需要映射的后端參數名稱。
說明
參數名不能以x-apig-?、x-sdk-開頭,不能是x-stage,不區分大小寫。
參數位置為HEADER時,參數名不支持下劃線開頭,不區分大小寫。
后端參數位置
選擇后端參數在后端服務請求中的位置,可選擇“PATH”、“HEADER”和“QUERY”。
描述
填寫系統參數的描述信息。
步驟 5 (可選)添加策略后端。
添加多個后端策略后,通過不同的策略條件,請求被轉發到不同的后端服務中。
單擊策略后端的加號,添加策略后端。- 后端策略增加的參數,具體如下表后端策略參數介紹。
表 后端策略參數
信息項 描述 后端策略名稱
您自定義的名稱,用于識別不同的后端策略。
生效方式
l? ? 滿足任一條件:只要滿足策略條件中的任意一項,此后端策略就可以生效。
l? ? 滿足全部條件:只有滿足所有的策略條件,此后端策略才生效。
策略條件
使后端策略生效的條件。
表 策略條件
信息項 描述 條件來源
l? ? 源地址:以訪問API的請求地址作為策略條件來源。
l? ? 請求入參:以請求入參參數作為策略條件來源。
l? ? Cookie:表示以API請求的Cookie信息作為判斷條件。
l? ? 系統參數-網關內置參數:以網關內置參數作為策略條件來源。網關內置參數指API網關處理API請求時的系統運行時參數信息。
說明
?選擇“請求入參”作為策略條件時,入參需要在API前端請求中配置好,如在Header中添加一個參數。
如果未展示“系統參數”請聯系技術支持升級實例。
參數名稱
l? ? 當“條件來源”為“請求入參”時,需要設置。選擇已創建的入參參數名稱。
l? ? 當“條件來源”為“系統參數”時,需要選擇參數名稱。
? ? ?reqPath:請求URI,如“/a/b/c”。
? ? ?reqMethod:請求方法,如“GET”。
l? ? 當“條件來源”為“COOKIE”時,需要填寫Cookie中的參數名稱。
參數位置
僅在“條件來源”為“請求入參”時,展示請求入參的參數位置。
條件類型
僅在“條件來源”為“請求入參”、“系統參數”、“COOKIE”時需要配置。
l? ? 相等:請求參數值必須為輸入值時,條件成立。
l? ? 枚舉:請求參數值只需要和枚舉值中任何一個值相同,條件成立。
l? ? 匹配:請求參數值只需要和正則表達式中任何一個值相同,條件成立。
說明當“條件來源”為“系統參數”并且“參數名稱”為“reqMethod”時,“條件類型”僅支持選擇相等或枚舉。
條件值
l? ? “條件類型”為“相等”時,輸入一個值。
l? ? “條件類型”為“枚舉”時,輸入多個值,以英文逗號隔開。
l? ? “條件類型”為“匹配”時,輸入一個范圍,例如:[0-5]。
l? ? “條件來源”為“源地址”時,輸入一個或多個IP地址,以英文逗號隔開。
步驟 6 定義返回結果。
在“返回結果基礎定義”區域,填寫返回信息。
表 定義返回結果
信息項 描述 成功響應示例
成功調用API時,返回的響應信息示例。
失敗響應示例
調用API失敗時,返回的響應信息示例。
步驟 7 單擊“完成”,進入“API運行”頁面,可查看API詳情。
(可選)為API添加策略
發布API后,方可添加策略。
步驟 1 在“API運行”頁面,單擊“添加策略”。
步驟 2 選擇策略類型,配置策略。
- 選擇已有策略:單擊“選擇已有策略”后,選擇策略。
- 創建新策略:創建策略并綁定API。
步驟 3 單擊“確定”,完成策略的創建。