IntelliJ IDEA 使用 rest client

idea 可以通過 RESTful Web 做接口調試,包括調試外部接口。具體可以參照 : https://www.jetbrains.com/help/idea/restful-webservices.html

一、準備

需要安裝 RESTful Web Services 插件,通過 Ctrl + Alt + s ==> Plugins ==> 搜索 RESTful Web Services,如圖:

在這裏插入圖片描述

二、初體驗

進入 rest 控制檯, idea 導航欄 ==> Tools ==> HTTP Client ==> Test RESTFUL Web Service 如圖:

在這裏插入圖片描述

點擊 Test RESTful Web Services , 效果如下 :

在這裏插入圖片描述

這樣就完成一一個請求,如果在控制檯中點擊了 Convert request to the new format 就會以 .http 文件的方式保存到 Scratches and Consoles 下的 Scratches 文件夾中,如圖:

在這裏插入圖片描述

三、創建HTTP請求文件

除了通過控制文件發送請求,也可以自己創建 .http 文件發送請求。可以通過右鍵 new ==> HTTP Request 指定位置創建一個 RESTful 請求文件(如下圖),或者通過快捷鍵 Ctrl + Shift + Alt + Insert 選擇 HTTP Request 創建一個臨時文件文件保存到上面的 Scratches 文件夾中。

在這裏插入圖片描述

四、環境變量

編寫HTTP請求時,可以使用環境變量來參數化其元素 。例如,可以使用{{host}}佔位符代替在請求中顯式提供主機名 。然後,在項目中定義一組環境變量,其中包含所需的主機定義。執行請求時,可以在定義的環境之間進行選擇。

變量可以保存以下請求組件的值:

  1. 請求ip,端口和路徑
  2. 查詢參數或值
  3. 請求頭的值
  4. 在外部文件爲請求體提供任意值

定義環境變量

環境變量在環境文件中定義的,文件定義在與 .http 文件相同目錄下,文件可以是 : rest-client.env.json 或者 http-client.env.json, rest-client.private.env.json 或者 http-client.private.env.json。

rest-client.env.json 或者 http-client.env.json 表示這個文件是包含普通的變量,並把裏面的變量分發到項目中。

rest-client.private.env.json 或者 http-client.private.env.json 表示該文件是一個私人的文件,可能包括密碼,令牌,證書和其他敏感信息。默認情況下,此文件被添加到 VCS 忽略文件列表中。在 http-client.private.env.json 文件中指定的變量的值將覆蓋環境文件中的值。

具體使用

文件結構

在這裏插入圖片描述

report_api.http 中數據


POST {{host}}/api/employee-user/logIn
Content-Type: application/json

{
  "username": "{{username}}",
  "password": "{{password}}"
}

###

GET {{host}}/api/reportApplet/list?state=-1&type=3
Accept: */*
Cache-Control: no-cache
token: {{token}}
Content-Type: application/json

###

# 修改狀態
POST {{host}}/api/operateProcessGroup/state
Accept: */*
Cache-Control: no-cache
token: {{token}}
Content-Type: application/json

{
  "id":10,
  "state": "{{enable_state}}"
}

###

POST {{host}}/api/operateProcessGroup/modify
Accept: */*
Cache-Control: no-cache
token: {{token}}
Content-Type: application/json

{
"id":10,
"name":{{unresolved-var}},
"state":0
}

http-client.env.json 中數據 :


{
  "dev": {
    "host": "http://127.0.0.1:8080",
    "token": "c10fb622c769d74200c71b46ad74afaa",
    "enable_state": "1"
  },

  "line": {
    "host": "https://www.xxx.com",
    "token": "8ad4f5f92728bf43ee807444f9d78876",
    "enable_state": "1"
  }
}

http-client.private.env.json 中數據 :


{
  "dev": {
    "username": "test",
    "password": "test"
  },

  "line": {
    "username": "admin",
    "password": "admin"
  }
}

運行時就可以選擇 dev 和 line 兩種方式

在這裏插入圖片描述

這裏的 dev 和 line 對應前面 http-client.env.json 中定義的 dev 和 line。

注意: 在最後一個請求中,由於 {{unresolved-var}}未在環境文件中定義變量{{unresolved-var}},因此在種情況下,IntelliJ IDEA均會將文本作爲請求的一部分發送。

五、簡單語法

對於 .http 文件中的一些簡單語法 :

  1. 註釋 : // 或者 #
  2. 使用三個#號分割 request 請求 : ###
  3. web 的 basic 或者 digest 認證
// Basic authentication
GET http://example.com
Authorization: Basic username password

###

// Digest authentication
GET http://example.com
Authorization: Digest username password
  1. 普通請求體
POST http://example.com:8080/api/html/post
Content-Type: application/json 

{ "key" : "value", "list": [1, 2, 3] }
  1. 不添加執行日誌
// @no-log
GET example.com/api

六、響應處理程序腳本

將腳本插入請求中

> 開頭,然後把腳本包裝在 {%%} 裏面。

斷言

GET https://example.com/status/200

> {%
    client.test("Request executed successfully", function() {
        client.assert(response.status === 200, "Response status is not 200");
    });
%}

腳本日誌

client.log("this is log");

在這裏插入圖片描述

存儲變量

通過 client.global.set 存儲全局變量,通過 client.global.get 獲取變量。可以通過 client 對象在內存中存儲數據,可以保留到 idea 關閉之前。

除了 get 獲取值外,還可以通過變量獲取值,如圖:

在這裏插入圖片描述

那麼在一處存儲了變量, 就可以在其他地方調用了,非常適合處理 token,就有點像瀏覽器登錄了…

七、請求結果記錄

請求結果一般存儲在該項目的 .idea 目錄下的 httpRequests 目錄裏面的 http-requests-log.http 文件中,如下 :

在這裏插入圖片描述

查看返回結果 json 通過 Ctrl + b 或者 ctrl + 鼠標左鍵進入返回的 json 詳情,途中有誤 emm…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章