Skip to main content
Version: 2.8.1

測試及偵錯

測試及偵錯的功能可以幫助使用者在使用 API Gateway 時若發生問題,可以更簡單的進行除錯。

透過視覺化的方式來呈現每次測試的結果、經過的服務、路由、插件,若該次請求被插件所阻擋,也會清楚地顯示是被哪一個套件所阻擋、以及對應的錯誤訊息。

以下分成兩個區塊來說明:請求區塊 (Request)、回應區塊 (Response)。

請求區塊#

請求區塊範圍如下圖:

請求區塊

最上排的請求輸入框,由左到右分別是:方法(Method)、API Gateway Proxy URL、API 路徑(API Uri/Path)。

  • 方法(Method): 選擇 HTTP Method,像是 GET、POST、PUT、DELETE、PATCH。(必填)
  • API Gateway Proxy URL: 預設會帶入「快速設定#API Gateway 設定區塊」中所填寫的 Proxy URL。若無設定過 Proxy URL,則需重新填入目前環境的 GOC API Gateway 用來做 Proxy 請求轉導的 URL。如上圖,環境的請求是透過呼叫 http://10.112.1.3:31215/ 來存取後方服務,所以就填入 http://10.112.1.3:31215/,如果 API Gateway Proxy URL 已經有對應的 FQDN,也可以在這個欄位填入 Protocol+FQDN。(必填)
  • API 路徑(API Uri/Path): 需填入要呼叫的路徑,若無,則留空。(非必填)

若偵測目前指定的服務其下任一路由有設定 域名(Hosts) 欄位的話,便會出現下圖的圖示,提醒測試的時候請求要加上 x-api-host header:

請求設定 Header 提示

請求設定包含了以下三種設定: Query Params、Headers、Body,可以切換頁籤編輯。

note

若請求區塊畫面範圍過大,可以在編輯完後點擊右上角的摺疊符號來縮減區塊畫面。

Query Params#

Query Params 可以在點擊 「 Add Parameter 」之後,於下方雙擊對應欄位編輯,填入對應的值。

請求設定 Query

左方的勾選框可以彈性選擇該次請求想要使用的 Query Param,要移除 Query Param 的話,可以點選最右方的 X 圖示。

Headers#

Headers 可以在點擊 「 Add Header 」之後,於下方雙擊對應欄位編輯,填入對應的值。

請求設定 Header

左方的勾選框可以彈性選擇該次請求想要使用的 Header,要移除 Header 的話,可以點選最右方的 X 圖示。

Body#

Body 的部分支援的種類如下圖。

請求設定 Header

none#

不帶任何 body。

form-data#

若為單純的文字類型,在填入 Key 值之後,額外填入 「(TEXT) VALUE」 欄位即可。

若為檔案類型,則在填入 Key 值之後,點選 「(FILE) VALUE」 欄位的選擇檔案按鈕,再選定檔案即可。

左方的勾選框可以彈性選擇該次請求想要使用的 Parameter,要移除 Parameter 的話,可以點選最右方的 X 圖示。

請求設定 form-data

x-www-form-urlencoded#

可以自行設定 Key 以及 Value。

左方的勾選框可以彈性選擇該次請求想要使用的 Parameter,要移除 Parameter 的話,可以點選最右方的 X 圖示。

請求設定 x-www-form-urlencoded

raw#

可以選擇輸入的文字格式,如下圖,目前支援的格式有: Text、Javascript、JSON、HTML、XML。

選擇格式後,就可以在輸入區塊填入任意文字。

請求設定 x-www-form-urlencoded

binary#

可以自行選擇要上傳的檔案。

請求設定 binary

在請求設定都填妥之後,按下「送出」後,就會協助發送請求,送出按鈕右方會有一個眼睛的圖案,將滑鼠移至上方,便會看到最後一次送出請求的內容,包含 headers、params、data,可以透過此功能來確認請求內容是否正確。

請求內容

回應區塊#

回應區塊如下圖:

回應區塊

在收到回應後,畫面會將最新的回應順序排在前面,並且左方會有一個圖示標註著「NEW」。

每個回應會顯示 3 個基本的資訊:狀態 (Status)、方法(Method)、API 路徑(Uri)。

可以任意展開每個回應,查看更細節的回應內容,如下圖,若視覺化圖片區塊無法完整呈現,可以自行滑動畫面,就可以看到全部的設定了。

回應內容1

回應內容區塊從上至下,可分為拓樸設定視覺化、請求內容/回應內容。

拓樸視覺化#

拓樸視覺化的部分可以幫助使用者快速看出目前的服務、路由設定,以及插件之間的關係。

可以透過每個物件上的編輯按鈕,導頁至對應物件編輯內容的頁面。

回應內容1

可將滑鼠移至放大鏡的圖示上,就可以查看目前 服務/路由/插件 的內容。

回應內容2

插件/全域插件可以從下圖的圖示區分,「全域」插件會多了一個地球的圖示,且因為插件可以自行啟用/禁用,所以在右上角也會顯示目前插件的狀態,若為勾 (v),則是啟用,若為叉 (x),則是已經禁用。

回應內容3

note

全域插件的作用範圍是任何服務、路由,所以請求有可能被全域插件阻擋。

一般的插件作用範圍會依照創立的時候是從:

(1) 服務編輯頁面去新增插件

(2) 路由編輯頁面去新增插件

而有作用範圍的不同。

該次請求匹配的服務、路由,在拓樸內會對應上色,插件的部分在處理完畢後,也會對應上色,因此可以很容易地從拓樸圖中查看到該次請求的處理細節。

如下圖範例,可以從畫面中很清楚的看到,該次請求所匹配的路由是 goc,而不是 goc2

回應內容4

再使用其他圖片來說明,若收到了 401 Unauthorized 的回應,深入查詢回傳原因可以由拓樸圖中得知,並不是被 GOC API Gateway 的插件阻擋 (插件部分已全數上色,代表通過插件檢查及處理),401 Unauthorized 是直接由後端服務回傳的結果。

回應內容5

若該此請求的回應遭受到插件所阻擋,那對應阻擋的插件就會用紅色的背景顯示,並且多了一個紅色的驚嘆號,如下圖,可以得知回傳 401 Unauthorized 的原因是因為沒有滿足 acl 插件的設定,所以在 GOC API Gateway 端被擋下。

回應內容6

請求/回應詳細內容#

請求詳細內容的部分會顯示該次請求的細節資訊,如下圖。

回應內容7

回應詳細內容的部分會顯示該次回應的細節資訊,如下圖。

回應內容7

若回應內容目前格式不好閱讀,可以開啟「Body 排版美化」功能,協助把 body 內容排版為更易閱讀的格式。

回應內容7

常見問題#

  1. 回應 Status 為 Network Error,且回應詳細內容如下:
(英文)
No any response received.
If there is a Network Error, please check your network status and troubleshoot CORS issue first.
If it is a CORS problem for sure, you can consider adding/enabling a CORS plugin to help solve it.
(中文)
未收到任何回覆。
若出現 Network Error,請先檢查您的網路狀態,以及排除 CORS 問題。
若確認是 CORS 問題,可考慮新增/啟用 CORS 的插件來協助解決。

請先確認:

  • 目前網路狀態是否正常。
  • 後端服務狀態是否良好。
  • 是否為 CORS 問題,若為 CORS 問題,可參閱 CORS 說明頁面 來啟用插件。