這篇文章主要是為了讓各位讀者了解 Httpie 這個 HTTP 的命令行客戶端,同時也了解一下介面的有關知識
Httpie 是什麼
Httpie (aych-tee-tee-pie)是一個 HTTP 的命令行客戶端。其目標是讓 CLI 和 web 服務之間的交互儘可能的人性化。你可以用它很方便的用 http 的命令調試介面,最常用的應該就是 GET 和 POST 了。
介面是什麼
舉個簡單形象的例子,如果有一家寵物店賣動物口糧,比如貓糧狗糧,那麼出售糧食就是一個介面,來的是貓就賣貓糧,來的是狗賣狗糧,以後來個什麼雞鴨魚之類的只要修改一下這個出售糧食的方法即可。
如果沒有介面,那麼就要寫好對貓怎麼做,對狗怎麼做,而且以後對雞鴨魚這些來了還要重新寫對雞怎麼做等等等等……簡而言之,介面可以讓程序便於變化。
為什麼要調試介面
最終的目的就是使介面穩定,沒有 bug 。一般來說除了最基礎的正常使用功能之外,還需要測試臨界時的情況,比如說對處於可輸入數據範圍邊界上的數據是否能夠處理;還有性能測試,這部分就是使用資源的情況,介面響應時間等。
關於 Httpie
特點:
1、直觀的語法
2、格式化和色彩化的終端輸出
3、內置 JSON 支持
4、支持上傳表單和文件
5、HTTPS、代理和認證支持
6、支持任意請求數據
7、自定義標題
8、持久性會話
9、類 Wget 下載
10、支持 Python 2.6, 2.7 和 3.x
11、支持 Linux, Mac OS X 和 Windows
12、插件
13、文檔
14、測試覆蓋率
Curl VS Httpie
我們首先用一張圖來進行比對 Httpie 與 curl :
curl 的使用方法
curl -X METHOD -H HEADER -i
後面的-i是表示顯示返回消息的頭部,如果你使用 cURL 訪問 OpenStack,那麼這個選項在獲取 UUID 類型的 token 時必不可少。然後創建請求消息體,在使用 curl 來發送消息,會返回 json 消息體,
但返回的 json 消息體比較混亂,不便閱讀,如果想從返回的 json 消息體中獲取一下信息是比較困難的。
Httpie的使用方法
HTTPie 基於 python 編寫,內部使用了 Requests 和 Pygments 庫。
HTTPie 的用法要比 cURL 直觀很多,沒有那麼多選項,基本上心裡怎麼想就怎麼寫,默認輸入和輸出都是 json 格式 (而 cURL 必須要指定 -H "Content-Type: application/json")。我們同樣實現上面獲取 token 的功能,效果如下:
很明顯的能看出,使用 Httpie 所得到的結果結構的清晰明了,它對返回的結果自動做了高亮和格式化。
更多:
cURL vs HTTPie on the Command Line for HTTP APIs:
https://www.ctl.io/developers/blog/post/curl-vs-httpie-http-apis