接口调试是每一个软件开发从业者必不可少的一项技能,一个项目的完成必然经过大量的接口测试,实际开发过程中,接口调试的时间不比实际开发所用的时间少。
作为前端开发人员,我们通常使用 Postman(或 PostWoman 等 ) 工具来进行REST api调用。
Postman 用来调试接口很方便,但它有很多限制。
我们已经使用 VSCode 开发项目,为什么我们还需要额外打开 Postman 去调试接口喃?并且 Postman 运行占用了大量的 RAM,这对 RAM 紧缺的设备来说,尤为重要。
进行调用测试 API 是可以的,但是如果你要编辑、版本控制或仅与你的团队共享,则不是很方便。
当然,你可以使用 Postman 付费版本,但这意味着你需要付费,并且你所在的所有团队都需要使用 Postman ,这工程量就很大了!
REST Client 是一个 VS Code 扩展插件,它允许你发送 HTTP 请求并直接在 VS Code 上查看响应结果。
由于它是基于文本格式,所以我们可以轻松的在存储库之间进行版本控制。
步骤一:安装 REST Client 插件
步骤二: 创建一个 .http 或 .rest 文件
步骤三:写入测试接口
POST http://dummy.restapiexample.com/api/v1/create HTTP/1.1
content-type: application/json
{
"name":"Hendry",
"salary":"61888",
"age":"26"
}
curl -X POST "http://dummy.restapiexample.com/api/v1/create" -d "Hello World"
如果省略 request 方法,请求将被视为 GET 。
注意:接口间通过 ### 分隔,同一个 .http 文件里可以涵盖多个 HTTP 请求。不像 Postman,不同的 HTTP 请求需要放在不同的 tab 里。
步骤四:发送请求,测试接口
点击 Send Request ,或者右键选择 Send Request ,或者直接用快捷键 Ctrl+Alt+R(或Cmd+Alt+R) ,你的 REST API 就执行了,然后 API Response 就会显示在右边区域。
一个 http 文件可能定义许多请求和文件级自定义变量,很难找到你想要的请求/变量。我们可以使用快捷键 Ctrl+Shift+O(或Cmd+Shift+O)来切换请求/变量。
自定义环境变量
不同的环境(开发、测试、生产),API 接口参数可能有所不同,我们不可能每次切换环境的时候,都手动修改代码,所以我们可以自定义项目的环境变量,每次切换即可。
点击 Code => Preferences => Settings 打开设置,切换到 Workspace Settings ,配置 settings.json 文件:
{
"rest-client.environmentVariables": {
"$shared": {
"version": "v1",
"prodToken": "foo",
"nonProdToken": "bar"
},
"local": {
"version": "v2",
"host": "localhost",
"dummyhost": "local",
"token": "{{$shared nonProdToken}}",
"secretKey": "devSecret"
},
"production": {
"host": "api.apiopen.top",
"dummyhost": "dummy.restapiexample.com",
"token": "{{$shared prodToken}}",
"secretKey" : "prodSecret"
}
}
}
可以切换不同的环境(Ctrl+Alt+E 或 Cmd+Alt+E),调用相应的配置项(host 、 token 等)。
### 测试接口 RFC 2616
// host 为环境变量
GET https://{{host}}/musicRankings HTTP/1.1
当然,rest-client 还有更多的配置项,例如:
等等…...
自定义文件变量
我们可以在 HTTP 文件任意位置定义文件变量,它们都可以在整个文件的任何请求中引用。例如:
// 文件变量
@port = 8080
@contentType = application/json
### 测试接口 RFC 2616
// 文件变量
@name = musicRankings
GET https://{{host}}/{{name}} HTTP/1.1
自定义请求变量
当单个请求结果的值需要被其它请求使用时,可以使用请求变量,格式为:@name newname ,请求变量引用语法为 {{requestName.(response|request).(body|headers).(JSONPath|XPath|Header Name)}}。
@contentType = application/json
###
# @name createComment
POST https://{{host}}/comments HTTP/1.1
Content-Type: {{contentType}}
###
# @name getCreatedComment
GET https://{{host}}/comments/{{createComment.response.body.$.id}} HTTP/1.1
Authorization: {{login.response.headers.X-AuthToken}}
系统变量
系统自带的一些变量,使用系统变量需要有 $符号
更多系统变量用法请参考 官方文档
更多功能等待你的挖掘,详见vscode-restclient!!!
Postman 有口皆碑,确实是一个不错的工具,但 REST Client 也值得进行尝试,毕竟连后端也已经推出了 IDEA REST Client, 在和同事进行协作开发时,在项目中增加一个 .http 接口请求文件,方便自己的同时方便其他人。
想看往期更过系列文章,点击前往 github 博客主页
Emmet是专为我们前端开发人员设计的一个工具,可以大大提高您的HTML和CSS工开发效率,我们大致了解了下Emmet这个神器,学会了基本的使用,emmet能大大提高我们编码效率,还没用的赶快用起来吧。
一般程序员都会了解,类似于 IO、网络请求等都应该是 异步 的。在Dart中,我们使用 Future 来管理,这样就不用担心线程或者死锁的问题,那么当 Flutter 涉及到 Future 的时候,widget 该如何去构建呢?
sql2go用于将 sql 语句转换为 golang 的 struct. 使用 ddl 语句即可。例如对于创建表的语句: show create table xxx. 将输出的语句,直接粘贴进去就行。toml2go用于将编码后的 toml 文本转换问 golang 的 struct.
ES5的回调使我们陷入地狱,ES6的Promise使我们脱离魔障,终于、ES7的async-await带我们走向光明。今天就来学习一下 async-await。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!