天天看點

API網關BODY傳輸的配置和調用詳解

在API網關上開放服務時,不少API開放者對于在API網關上怎樣配置BODY有些迷茫,導緻花費在配置和調試上的時間較多,本文将針對API網關POST方法下,各種情況的Body配置進行詳細介紹,希望能減少使用者的困惑。

常用的Content-Type

在進行HTTP的POST請求中,需要配置Content-Type指定body的類型。下面以常見的3種進行舉例。

Content-type 描述
application/x-www-form-urlencoded 資料被編碼為名稱/值對,資料以form的形式傳輸
application/json 表示body是一個JSON資料格式
application/octet-stream 二進制流資料,如常見的檔案下載下傳

注:API網關不支援multipart形式進行檔案上傳。如果有檔案上傳,需要将檔案進行Base64後放到Body中傳輸,而且Body大小不能超過2M,如果有大于2M的内容,您可以結合OSS工具使用(通過OSS上傳檔案,API網關隻傳輸位址)。

API Body配置

首先,我們需要知道body應該以什麼形式傳給後端。下面将分别針對3種類型的content-type進行API網關配置和調用的介紹。

1、application/x-www-form-urlencoded

這種形式表示body以Form形式傳輸,API網關配置如下:

  • 1、選擇Method為POST
  • 2、在入參定義中選擇參數位置為“Body”進行配置
    API網關BODY傳輸的配置和調用詳解

調用以postman工具為例

API網關BODY傳輸的配置和調用詳解

2、application/json

這種形式表示body是JSON格式,一般如果後端是Spring MVC的API,參數需要以該形式傳輸。

在API網關配置時,需要勾選“非Form表單資料,比如JSON字元串、檔案二進制資料等”。

API網關BODY傳輸的配置和調用詳解

可以把body格式放到"Body内容描述"裡面,可以自動生成文檔。

另外,在下一頁“定義API後端服務”部分,需要設定Content-Type值為“application/json”或者“透傳用戶端”。

API網關BODY傳輸的配置和調用詳解

header需要修改Content-Type為“application/json”.

API網關BODY傳輸的配置和調用詳解

3、application/octet-stream

這種content-type一般用于上傳一個檔案或者圖檔。API網關的配置如下:

API網關BODY傳輸的配置和調用詳解

注意:下一頁“定義API後端服務”部分,可以設定Content-Type值為“application/octet-stream”或者“透傳用戶端”。

調用以postman工具為例:

header需要修改Content-Type為“application/octet-stream”.

API網關BODY傳輸的配置和調用詳解

以上是API網關常見的幾種資料類型傳輸,如果有其他類型,可以參考application/json和application/octet-stream的配置方式。