作為 Web 開(kāi)發(fā)人員,開(kāi)發(fā)和調(diào)試 REST API 是家常便飯。我們會(huì)用一些工具來(lái)模擬 HTTP 請(qǐng)求,最常用的可能就是 Postman 了。前不久還冒出一個(gè)女版 Postman,那就是 Postwoman,詳情可見(jiàn)我之前寫(xiě)的一篇介紹:還在用 Postman 測(cè)試接口?是時(shí)候試試 Postwoman 了!
這些工具確實(shí)很實(shí)用,但也存在一些局限性。
通過(guò)模擬 HTTP 請(qǐng)求來(lái)測(cè)試 REST API 是比較常見(jiàn)的做法,但是要編輯接口文檔并進(jìn)行版本管理,或者就是簡(jiǎn)單地跟團(tuán)隊(duì)成員共享,恐怕需要用到更多、更復(fù)雜的工具了。
有人說(shuō) Postman 付費(fèi)版本就有這些功能呀。沒(méi)錯(cuò),但是要掏錢(qián)?。”局苁t省的原則,有免費(fèi)工具干嘛不用呢。再者,團(tuán)隊(duì)每個(gè)人都需要用 Postman 才行,我只想單純寫(xiě)個(gè)代碼,不想裝那么多工具……
好了,大殺器即將出場(chǎng)。它就是 REST Client !

REST Client 是一個(gè) VS Code 插件.
裝上它,你就可以在 VS Code 里發(fā)送 HTTP 請(qǐng)求,查看響應(yīng)結(jié)果。這一切只需要一個(gè)文本文件,很容易加入到代碼倉(cāng)庫(kù)中,方便版本管理。
優(yōu)缺點(diǎn)
它主要的優(yōu)勢(shì)就是可以做版本管理和團(tuán)隊(duì)共享。
如果你在開(kāi)發(fā)某個(gè) API,你想讓其他開(kāi)發(fā)小伙伴們也知道怎么用你的接口,REST Client 就是個(gè)很好的幫手。
另外一個(gè)優(yōu)勢(shì)就是簡(jiǎn)單。前面說(shuō)了,它只需要一個(gè)文本文件。它不但充當(dāng)了發(fā)送請(qǐng)求的參數(shù)配置的角色,還可以作為接口文檔,當(dāng)你忘了某個(gè)接口怎么用的,直接翻出這個(gè)文件看看就行了!
缺點(diǎn)呢?那就是你要用 VS Code……作為 VS Code 鐵粉,這根本就不是個(gè)事兒!當(dāng)然,你要是用別的編輯器,那就……話說(shuō) VS Code 它不香嗎?
用法
很簡(jiǎn)單,只要?jiǎng)?chuàng)建一個(gè)擴(kuò)展名為 .http 的文件就行。比如要調(diào)用新浪股票的接口,我們新建一個(gè)stock.http文件:
@baseUrl = http://hq.sinajs.cn
GET {{baseUrl}}/list=sh600519
Accept: application/json
編輯完后,編輯器里會(huì)出現(xiàn)一個(gè) Send Request 按鈕,點(diǎn)擊就可以發(fā)送請(qǐng)求了。請(qǐng)求結(jié)果會(huì)顯示在右邊的新 tab 里。是不是巨簡(jiǎn)單?

通常 REST API 不會(huì)這么簡(jiǎn)單,可能還有其它 POST,PUT,DELETE 等各種請(qǐng)求方法,還會(huì)需要請(qǐng)求參數(shù)或 Header 等。寫(xiě)法也很簡(jiǎn)單,其實(shí)跟瀏覽器開(kāi)發(fā)工具里顯示的差不多,只要遵循 RFC 2616格式要求,包含請(qǐng)求方法、header和 body 就行了。這里需要注意,header 內(nèi)容要緊跟請(qǐng)求方法下一行,不能有空行,否則就是無(wú)效的。
POST https://example.com/comments HTTP/1.1
content-type: application/json
{
"name": "sample",
"time": "Wed, 21 Oct 2015 18:27:50 GMT"
}
進(jìn)階
實(shí)際項(xiàng)目中可能有更復(fù)雜的場(chǎng)景,比如要測(cè)試不同環(huán)境下的接口。為此,REST Client 提供了各種變量。變量分為兩大類(lèi):自定義變量和系統(tǒng)變量。顧名思義,自定義變量就是用戶自己定義的變量。它又分為環(huán)境變量、文件變量和請(qǐng)求變量。系統(tǒng)變量就是插件內(nèi)置的一些變量,可以直接拿來(lái)用。具體用法可以參考官方文檔。
舉個(gè)例子,插件的環(huán)境變量是在 VS Code 的配置文件中定義的,也就是 settings.json文件:
"rest-client.environmentVariables": {
"$shared": {
"version": "v1",
"prodToken": "foo",
"nonProdToken": "bar"
},
"local": {
"version": "v2",
"host": "localhost",
"token": "{{$shared nonProdToken}}",
"secretKey": "devSecret"
},
"production": {
"host": "example.com",
"token": "{{$shared prodToken}}",
"secretKey" : "prodSecret"
}
}
這樣,當(dāng)你切換不同的環(huán)境時(shí),就會(huì)啟用該環(huán)境下的變量值。
插件的簡(jiǎn)單介紹就先到這里,更多功能可以查看插件的Github 倉(cāng)庫(kù)。
看到這個(gè)頗有氣質(zhì)的 logo,不來(lái)關(guān)注下嗎?
作者:1024譯站
鏈接:http://www.itdecent.cn/p/64d83c5182d0
來(lái)源:簡(jiǎn)書(shū)