概述
本文主要介紹網關的幾個核心概念,以便更好地進行 API 服務開發與調用。
協議轉換
API 網關不僅是一個簡單的反向代理服務,同時還提供協議轉換的能力,支持使用 A 協議調用 B 協議的接口。協議轉換與使用的編程語言無關,但是僅 Java 語言支持使用高級功能,比如服務端簽名校驗、數據加解密等,其他語言目前只能使用基礎能力。
API 網關將協議分為 DownProtocol 和 UpProtocol,如下圖所示。
DownProtocol 指的是從調用方發送請求到網關時使用的協議。當前 API 網關支持的 DownProtocol 包括:HTTP/HTTPS、SOFARPC、DUBBO。
UpProtocol 指的是網關將請求轉發到提供方使用的協議。當前 API 網關支持的 UpProtocol 包括:HTTP/HTTPS、SOFARPC 和 DUBBO。
API 網關支持的 協議轉換 如下:
HTTP/HTTPS > HTTP/HTTPS
HTTP/HTTPS > SOFARPC
SOFARPC > HTTP/HTTPS
DUBBO > HTTP/HTTPS
HTTP/HTTPS > DUBBO
SOFARPC > SOFARPC
請求認證
為了保證數據在傳輸過程中的安全性,API 網關支持對數據進行簽名校驗,包括網關對訂閱方和網關之間數據的雙向校驗,以及提供方和網關之間數據的雙向校驗。其中,訂閱方請求網關的時候必須對請求進行加簽,而提供方無要求。
為了實現簽名校驗的能力,需要在發起請求時進行加簽,收到響應后進行驗簽。當前 API 網關提供了以下語言的 SDK,方便用戶使用:
API 服務提供者:Java-SDK
API 服務訂閱者:js-signature-sdk、Java-SDK
其他語言的 SDK 會陸續推出,用戶也可自行實現。
數據加密
統一網關提供了對客戶端與網關之間傳輸的數據進行加密的能力,支持 RSA、ECC、國密 三種加密算法,保證數據傳輸過程中的安全性。詳情參見 數據加密。
目前僅支持對 HTTP 類型的 API 調用進行數據加密。