测试 REST API,到底应该选择什么样的 VS Code 插件?


在测试 REST API 的时候,想必大家都会有不同的工具选择。如果是基于 CLI 的话,大家应该会选择 cURL。如果是 GUI 工具的话,相信很多人都会使用 Postman。不过今天,笔者要推荐的是 REST Client 插件。也许,它是比 Postman 更好的选择。

(扫描上方二维码,访问插件的 Marketplace 页面)
相比于 Postman,REST Client 支持了 cURL 和 RFC 2616 两种标准来调用 REST API。

RFC 2616
下面就是一个符合 RFC 2616 标准的 POST 请求:
POST http://dummy.restapiexample.com/api/v1/create HTTP/1.1
content-type: application/json
{
"name":"Hendry",
"salary":"61888",
"age":"26"
}
我们在 VS Code 新建一个以 .http 或者 .rest 结尾的文件,填入你的 HTTP 请求,点击 Send Request,或者右键选择 Send Request,或者直接用快捷键 Ctrl+Alt+R ,你的 REST API 就执行了,然后 API Response 就会显示在右边区域。是不是很方便?


cURL
下面是一个符合 cURL 标准的 POST 请求:
curl -X POST "http://dummy.restapiexample.com/api/v1/create" -d "Hello World"
同样地,也能通过 REST Client 在 VS Code 里一键运行。

HTTP 语言
REST Client 添加了 HTTP 语言的定义,支持把以 .http 或者 .rest 结尾的文件当作 HTTP 语言,提供了语法高亮,代码自动补全,代码注释等功能。

看到这里,你也许会问,我直接用 Postman 在 GUI 上填一填 REST
API 的各个字段不就行了,干嘛还要写一个 HTTP 的文件。其实直接有一个 HTTP 文件的最大好处,就是方便分享。比如说,你可以把 HTTP 文件放到 GitHub,这样的话,所有开发或者使用项目的人都能复用这个 HTTP文 件了。也极大地方便管理你所有的 REST
API。
更方便的是,通过 ### 分隔符,同一个 HTTP 文件里可以涵盖多个 HTTP 请求。不像 Postman,不同的 HTTP 请求需要放在不同的 tab 里。


代码生成
“代码生成”也是 REST Client 里一个很方便的功能,你可以方便地通过 Generate Code Snippet 命令来把 HTTP 请求生成出不同编程语言的代码:JavaScript、Python、C、C#、Java、PHP、Go、Ruby、Swift 等主流语言。


高阶功能
其实 REST Client 还有很多功能,有需求的童鞋可以慢慢挖掘,笔者列出了一些比较有用的高阶功能:
Authentication:REST Client 支持了 Basic Auth、SSL Client Certificates、Azure Active Directory 等多种验证机制
Cookies 的支持
支持 HTTP 3xx 的重定向
变量的支持:环境变量、文件变量、预定义的系统变量等等
下面就是使用文件变量的一个例子,这样在不同的 HTTP 请求中,变量就能共享了。其中,{{$datetime iso8601}} 是预定义的系统变量:
@hostname = api.example.com
@port = 8080
@host = {{hostname}}:{{port}}
@contentType = application/json
@createdAt = {{$datetime iso8601}}
###
@name = hello
GET https://{{host}}/authors/{{name}} HTTP/1.1
###
PATCH https://{{host}}/authors/{{name}} HTTP/1.1
Content-Type: {{contentType}}
{
"content": "foo bar",
"created_at": {{createdAt}}
}
最后再给大家透露下:其实 REST Client 的作者也是中国人哦,曾经和笔者还是同事呢,是位大神哦!
作者:韩骏,微软研发工程师,VS Code 代码贡献者,VS Code 及 IoT 领域专家。
声明:本文为作者投稿,版权归其所有。

热 文 推 荐
☞ 谷歌、Facebook 大规模宕机!“裸奔时代”程序员该怎么办?
☞ 虎口夺食! 打破Facebook谷歌垄断, MIT大神和他的区块链数据库传奇! |人物志
☞ 以安全之名:2019年DevSecOps社区调研白皮书解读
☞ 再不编程就老了!05 后比特币专家准备赚个 134,000,000 元!
☞ 身为程序员的父母,你年薪多少才能让“码二代” 不输起跑线上?
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!n");
cout < < "点个好看吧!" < < endl;
Console.WriteLine("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"
点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 中法元首相会都江堰 7904549
- 2 中方不接受日方所谓交涉 已当场驳回 7809071
- 3 大闸蟹为何会在欧美泛滥成灾 7714515
- 4 国际机构看中国经济 关键词亮了 7617620
- 5 家长称婴儿被褥印不雅英文单词 7520552
- 6 日方军机滋扰擅闯或被视为训练靶标 7426108
- 7 罪犯被判死缓破口大骂被害人一家 7333113
- 8 国乒8比1击败日本队 11战全胜夺冠 7237759
- 9 长沙一男子要取现20万 银行紧急报警 7136413
- 10 千吨级“巨无霸”就位 7045807







CSDN
