天天看點

Java RESTful Web Service實戰(第2版) 1.8 REST調試工具

<b>1.8 rest調試工具</b>

在上節中,我們不但領略了rest請求處理流程,還對ide中設定斷點、觀察伺服器端運作時變量有了了解。本節将講述如何在用戶端對rest服務進行調試。為何需要在用戶端調試rest服務呢?因為在rest開發過程中,需要對請求資源位址、資源所支援的資料媒體類型和傳回值類型等進行調試和測試。是以,掌握用戶端的調試工具是開發優秀的rest服務的前提。下面将介紹這一領域常用的rest請求工具,以使讀者更進一步地熟悉rest開發和調試。

<b>1.8.1 指令行調試工具</b>

curl(http://curl.haxx.se)是非常易用、強大的基于url标準(rfc 3986)的指令行工具,通過指令行即可完成多種協定(比如http)的請求,并可以将請求的響應資訊輸出在終端/控制台上,是以對于調試和測試rest請求非常友善。

httpie(http://httpie.org)是和curl非常類似的指令行工具,相比curl有更良好的使用者體驗。

指令行工具的優點是簡單友善,缺點是沒有圖形化界面。下面将介紹幾款基于浏覽器的擴充插件作為rest用戶端調試工具的使用情況。

<b>1.8.2 基于浏覽器的圖形化調試插件</b>

curl功能強大、易于在自動化腳本中使用,但curl的每個請求都要通過碼字來完成、沒有圖形界面的特點并不适于所有讀者。下面将介紹幾種基于浏覽器的圖形化調試插件,以友善讀者在開發和測試rest服務時選擇使用。基于chrome浏覽器的rest插件有很多,本節将介紹其中的3種。

1. simple rest client插件

simple rest client插件是基于chrome浏覽器的擴充,安裝該插件後chrome視窗的右上方會出現該插件的圖示,以友善使用。該項目的位址是https://github.com/jeremys/simple-rest-client-chrome-extension,插件的下載下傳位址是http://chrome.google.com/extensions/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb()。simple rest client插件的界面如圖1-2所示。

圖1-2 simple rest client插件示意圖

simple rest client插件的特點是簡單易用,其界面分為請求資訊錄入和響應資訊展示上下兩部分。錄入部分包括url、http請求方法和請求頭3部分,見圖1-2中上方的數字辨別1~3。其中,http請求方法支援http的标準方法get、post、put、delete、head和options,headers部分需要完全手工輸入。響應資訊部分包括響應狀态、響應頭和響應實體3部分。其中,headers部分展示http請求互動的響應頭資訊,data中展示的是響應實體資訊,文法高亮顯示,見圖1-2中下方的數字辨別4~6。simple rest client插件總體上說是麻雀雖小,五髒俱全,但功能相比後面要講的插件不夠強大。

2. advance rest client插件

advance rest client可以看作是simple rest client的增強版。該項目的位址是https://code.google.com/p/chrome-rest-client,插件的下載下傳位址是https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo。界面如圖1-3所示。

圖1-3 advance rest client插件示意圖

advance rest client提供更為豐富的功能,除了simple rest client插件具備的輸入和輸出(見圖1-3中的數字辨別),advance rest client還支援帶參數的請求和送出表單等更完整的請求功能。資料格式上,支援原生的格式(raw)、xml格式的響應(response)資訊。advance rest client支援對請求位址的儲存和對最近使用位址的記憶,如果調試中需要多次測試同一個資源位址,可以将其儲存下來為以後使用;而多個這樣的位址也可以按照項目分别儲存,友善區分使用。

3. postman-rest client插件

postman-rest client是基于simple rest client源代碼編寫的專門針對rest的插件。該項目的位址是https://github.com/a85/postman-chrome-extension,插件的下載下傳位址是http://www.getpostman.com。界面如圖1-4所示。

圖1-4 postman-rest client插件示意圖

postman-rest client提供的功能更多,除了advance rest client具有的輸入和輸出(見圖1-4的數字辨別部分),還可以發起基于安全的請求。請求方法不僅包括http的标準方法,還包括webdav标準的方法。其響應資訊的展示和支援的格式也更豐富。如果讀者希望深入和細緻地調試rest服務,postman-rest client要比其他插件更合适。可以說3個插件的複雜度和功能性是遞增的,使用哪一個要看讀者的需求。類似的chrome插件不勝枚舉,如果有興趣,可以通過https://chrome.google.com/webstore/category/extensions通路chrome的網上商店,搜尋更多的chrome插件。

4. firefox插件

相對于chrome浏覽器,firefox的rest插件功能類似,其中常用的插件有rest-easy和restclient。rest-easy的項目位址是https://github.com/nathan-osman/rest-easy,restclient的項目位址是http://restclient.net。類似的firefox插件很多,讀者如果有興趣,可以在firefox浏覽器中錄入about:addons進入firefox的擴充,搜尋更多的相關插件。