测试 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 等主流语言。
高阶功能
60s测试:你是否适合转型人工智能?
https://edu.****.net/topic/ai30?utm_source=****_bw
其实 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大神和他的区块链数据库**! |人物志
☞ 再不编程就老了!05 后比特币专家准备赚个 134,000,000 元!
☞ 身为程序员的父母,你年薪多少才能让“码二代” 不输起跑线上?
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"
点击阅读原文,输入关键词,即可搜索您想要的 **** 文章。
喜欢就点击“好看”吧!