REST Client
简介
- REST Client 是一个用于测试 RESTful API 的插件,可以在 VSCode 中直接发送 HTTP 请求并查看响应结果。
- REST Client vscode
功能
- 在文本编辑器中就可以直接发送请求和查看返回
- 支持环境变量
- 可以直接发送 curl 命令
- 管理请求历史:可以保存请求历史,方便下次使用
- 生成代码:可以将请求转换为多种语言的代码
- 支持多种请求方式:GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH、TRACE
- Cookie 管理:可以管理请求的 Cookie
- 变量管理:可以管理请求的变量
使用
- 创建一个
.http
文件,输入请求内容,显示Send Request
然后点击,就能发送 get 请求。
GET https://www.baidu.com HTTP/1.1
- 发送多个请求, 用
###
分割
### get 请求并查看响应结果
GET https://www.baidu.com HTTP/1.1
### post 请求并查看响应结果
POST https://www.baidu.com HTTP/1.1
强大的变量
内置变量(常用)
{{$guid}}
:生成一个 GUID{{$randomInt min max}}
:生成一个指定范围内的随机整数{{$randomGuid}}
:生成一个随机 GUID{{$timestamp}}
:生成一个时间戳{{$datetime}}
:生成一个当前时间{{$isoDate}}
:生成一个 ISO 格式的当前时间{{$newGuid}}
:生成一个新的 GUID{{$randomInt}}
:生成一个随机整数{{$randomInt min}}
:生成一个大于等于 min 的随机整数{{$randomInt min max}}
:生成一个指定范围内的随机整数{{$randomDouble}}
:生成一个随机浮点数{{$randomDouble min}}
:生成一个大于等于 min 的随机浮点数{{$randomDouble min max}}
:生成一个指定范围内的随机浮点数{{$randomString length}}
:生成一个指定长度的随机字符串{{$randomString length chars}}
:生成一个指定长度和字符集的随机字符串{{$randomBytes length}}
:生成一个指定长度的随机字节
文件中自定义变量
@base_url = https://www.baidu.com ### get 请求并查看响应结果 使用变量 GET {{base_url}} HTTP/1.1
- 配置多环境变量:在 vscode 的设置文件 settings.json 配置多环境变量
"rest-client.environmentVariables": { "$shared": { "username": "pkslow", "password": "123456" }, "local": { "hostname": "localhost:8080", "password": "{{$shared password}}" }, "production": { "hostname": "localhost:8081", "password": "{{$shared password}}" } }
添加了两个环境 local 和 production,其中$shared 的变量是大家都可以引用的。
### post 请求并查看响应结果 POST https://{{hostname}}/login HTTP/1.1 Content-Type: application/json { "username": "hello", "password": "{{password}}" }
获取其它请求返回体的值为变量: 使用
@
符号。先通过 login 请求来获取 Token,然后再把拿到的 Token 作为请求头发送其它请求。这个 Token 肯定是每次登陆都不一样的,如果每次都要获取,然后复制,再粘贴到后面请求中,就会非常麻烦。REST Client 为这种场景提供了便利的办法,我们来看看怎么使用吧。
登录获取 token
### post 登录获取token # @name loginAdmin POST https://{{hostname}}/login HTTP/1.1 Content-Type: application/json { "username": "hello", "password": "{{password}}" }
添加一行
# @name loginAdmin
请求返回数据格式为 直接
token
, 可以通过{{loginAdmin.response.body.*}}
来引用变量{{requestName.(response|request).(body|headers).(*|JSONPath|XPath|Header Name)}}
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwa3Nsb3ciLCJyb2xlcyI6WyJST0xFX0FETUlOIl0sImlhdCI6MTYyMjI3OTMxMCwiZXhwIjoxNjIyMjc5OTEwfQ.h-fwUEOPx_tttlBOR8cXMHJWy2n6ath7lTqzfdAX87c
### get 请求并查看响应结果 使用变量 @token = {{loginAdmin.response.body.*}} GET https://{{hostname}}/api/v1/users HTTP/1.1 Authorization: Bearer {{token}}
如果返回体为如下:
{ "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwa3Nsb3ciLCJyb2xlcyI6WyJST0xFX0FETUlOIl0sImlhdCI6MTYyMjI3OTMxMCwiZXhwIjoxNjIyMjc5OTEwfQ.h-fwUEOPx_tttlBOR8cXMHJWy2n6ath7lTqzfdAX87c" }
- 可以通过
{{loginAdmin.response.body.$.token}}
来引用变量
### get 请求并查看响应结果 使用变量 @token = {{loginAdmin.response.body.$.token}} GET https://{{hostname}}/api/v1/users HTTP/1.1 Authorization: Bearer {{token}}