Editor REST Client

製做一個http請求

請求行

GET https://example.com/comments/1 HTTP/1.1

POST https://example.com/comments/1

https://example.com/comments/1

若是省略request方法,請求將被視爲GETphp

GET https://example.com/comments?page=2&pageSize=10

有時在單個請求中可能有多個查詢參數,將全部查詢參數放在請求行中很難閱讀和修改。因此咱們容許你將查詢參數傳播到多行(一行一個查詢參數),咱們將在請求行開始後當即解析行,?而且&像json

GET https://example.com/comments
    ?page=2
    &pageSize=10

請求頭

緊接在第一個空行的請求行以後的行被解析爲請求標題。請提供標準field-name: field-value格式的標題,
每行表明一個標題。默認狀況下,若是未明確指定,則會在請求中REST Client Extensionapi

添加`User-Agent`帶有值的標頭`vscode-restclient`。
您還能夠在設置中更改默認值`rest-client.defaultHeaders`。如下是請求標頭的示例:
User-Agent: rest-client
    Accept-Language: en-GB,en-US;q=0.8,en;q=0.6,zh-CN;q=0.4
    Content-Type: application/json

請求體

若是你想提供請求主體,請添加請求行和請求頭後,一個空行,以後它會被視爲全部內容的請求體。如下是請求正文的示例:app

POST https://example.com/comments HTTP/1.1
Content-Type: application/xml
Authorization: token xxx

<request>
    <name>sample</name>
    <time>Wed, 21 Oct 2015 18:27:50 GMT</time>
</request>

若是請求體內容很大,能夠將請求體寫在文件中,而後引用這個文件
示例dom

POST http://dev.avatarinternalapi.jd.com/alarm/alarm-info
Content-Type: {{contentType}}

< ./alarm.json

變量

自定義變量

自定義變量包含 環境變量  文件變量  請求變量
環境變量

不一樣環境下能夠切換使用不一樣的變量curl

在哪定義:設置->工做區設置phpstorm

{"rest-client.environmentVariables": {
    "$shared": {  //共享變量
        "version": "v1"
    },
    "local": {   //本地變量
        "version": "v2",
        "host": "dev.avatarinternalapi.jd.com",
        "token": "test token"
    },
    "production": {
        "host": "example.com",
        "token": "product token"
    }
}}

production 中沒有version時,調用production環境時,回去找$shared 中的version編輯器

文件變量
  • 對於文件變量,定義遵循@variableName = variableValue佔用完整行的語法。
  • 變量名稱不得包含任何空格。至於變量值,它能夠由任何字符組成,甚至容許空格(前導和尾隨空格將被剝離)。
  • 若是你想保留一些像換行符這樣的特殊字符,你可使用反斜槓 \n
  • 不管您在何處定義文件變量http文件,它們能夠在整個文件的任何請求中引用
@host = dev.avatarinternalapi.jd.com
@contentType = application/json

GET  http://{{host}}/alarm/email-info?pin=zhangkaixuan100,zhangkaixuan1002

Content-Type: {{contentType}}
請求變量

求變量的定義語法就像單行註釋同樣,在所需的請求URL以前 # @name newnamepost

使用場景:當一個請求須要其餘請求的值,做爲請求的參數時學習

請求變量引用語法以下{{requestName.(response|request).(body|headers).(JSONPath|XPath|Header Name)}}
您有兩個參考部分選擇響應或請求:正文和標題。對於正文部分,它只適用於JSONXML響應,您可使用JSONPathXPath
來提取特定的屬性或屬性。例如,若是JSON響應返回body {"id": "mock"}
則能夠將JSONPath部分設置$.id爲引用id

示例:

###

# @name createComment
POST {{baseUrl}}/comments HTTP/1.1
Content-Type: application/json

###

# @name getCreatedComment

GET {{baseUrl}}/comments/{{createComment.response.body.$.id}} HTTP/1.1

Authorization: {{login.response.headers.X-AuthToken}}

系統變量

系統自帶的一些變量,使用系統變量須要有 $符號

  • {{$guid}} 惟一識別號
  • {{$randomInt min max}} 返回一個minmax 之間的隨機數
  • {{$timestamp [offset option]}}:添加UTC時間戳。
  • {{$timestamp number option}},例如3小時前{{$timestamp -3 h}};表明後天{{$timestamp 2 d}}

更多系統變量用法請參考 官方文檔

系統設置

能夠用戶設置中,覆蓋系統設置

示例: "editor.fontSize": 13, 將系統默認的字體大小改成13

更多用戶設置用法請參考 官方文檔

rest editor 和 postman對比

安裝和啓動
  • postman 屬於一個pc端的應用,須要下載和安裝,每次使用須要啓動應用
  • rest editor 屬於一個插件,高版本的phpstorm自帶,能夠在phpstom中直接使用,無需單獨啓動新應用
  • 結論:在安裝和啓動上,rest editor 更加快捷
操作使用
  • postman 有功能強大的操作界面,使用起來方便,支持全局變量的定義。對於一個http請求中所需的全部參數,幾乎均可以在界面中定義。
  • rest editor 沒有操作界面,須要定義一個.http後綴的文件,在文件中編寫請求。一個http請求的所需參數,都須要手動編寫,通常編輯器會有參數聯想功能。
  • 結論: 在編寫一個完整的http請求的過程當中,postman顯得更加方便一點;兩者均可以保存編寫的http請求
學習成本
  • 結論: 相比而言rest editor 學習成本更高,應爲是純手動編寫http請求,須要學習rest editorhttp請求的編寫規則,而且須要熟練掌握http協議。
團隊協做
  • postman: 與他人共享編寫過的的http請求須要付費
  • rest editor 能夠將編寫的文件同步到代碼倉庫,實現團隊共享
  • 結論: rest editor 更甚一籌

其餘

製做curl

鼠標放置到請求上,郵件單擊選擇Copy Request As cURL

curl --request POST --url http://dev.avatarinternalapi.jd.com/alarm/alarm-info --header 'content-type: application/json' --data '< ./alarm.json'

快捷鍵的使用

  • Ctrl+Alt+L(Cmd+Alt+L對於macOS) 從新從新運行上一個請求
  • Ctrl+Alt+K(Cmd+Alt+K對於macOS) 中止請求
  • Ctrl+Alt+E(Cmd+Alt+E對於macOS) 選擇一個環境

更多快捷鍵用法請參考 官方文檔

保存響應

保存完整的響應

左上角保存的圖表

保存響應正文

左上角保存正文圖表

生成原始的請求代碼段

選中一次請求的全部代碼後 ->點擊右鍵 -> 選擇Generate Code Sinppet ->選擇你想要的語言

相關資料

官方文檔

Visual Studio Code下載

相關文章
相關標籤/搜索