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}}
