0. 概述

在正式开始使用 jetbrain HTTP 调试工具之前,我都是通过 Postman 进行 API 的调试和测试的,但是,自从换过来之后,我就相见恨晚了,所以,今天我准备向你介绍一下它。

1. Postman 有什么问题

放弃一款语言或者放弃一个工具总是有其原因的,有些并不是因为你不好,而是因为你不够好;有些真的是因为你不好,例如我会放弃 postman 自然有一些我嫌弃的地方,以下都为个人观点,可能受个人了解局限影响,如有错误,还请指出:

2. 为什么是 jetbrain http 工具

对于 Postman 的不便之处,当然不是致命伤,但是,当我使用 Jetbrains 系列的 IDE 的时候,再加上我体验了 Jetbrains 的 HTTP 工具之后,这便成了我放弃 Postman 的理由。

这里我推荐 Jetbrains 的 HTTP 工具的原因有:

3. 简单示例

下面,我就先来个最简单的 API 测试:

图 1:简单使用说明

这里你直接点击左边的 ”开始“ 按钮即可发送请求,然后你就可以在状态栏上看到响应了:

图 2:简单使用响应

这是只带 HTTP 请求头的,下面来一个带 HTTP 请求体的例子:

图 3:http 请求体示例

同样的,也是点击 ”开始“ 按钮即可,然后在状态栏中也可以看到输出了:

图 4:带请求体的响应

4. 高级应用

前面说了,Jetbrains 的 API 工具还可以进行一个响应处理,例如,我们的 API 都是有 token 限制的,所以在用 API 之前都是需要先进行获取 token。这里我的操作是,在登录 API 中,用 JS 处理一下,将 token 保存到全局作用域中,然后,再调用其他 API 的时候使用:

图 5:登录 API

这里我使用了两个特性,分别是:

接着,我就在调用其他 api 的时候使用这个 token 变量:

图 6:使用全局变量

OK,就是这么简单,一个双层的花括号即可。这里你可能会有点不爽的是,为什么要直接写 js,我引用 js 文件可以吗?是的,我做过不少类似的实践,例如我有一些 e2e 测试是通过这一套工具来写的,因为是 e2e 测试,所以 js 的代码量不少,内嵌肯定不行,所以我就抽出了一个个 js 文件,然后引用到这里,类似于:

图 7:引用 js 文件

当你写了很多 API 的时候,你可以直接一键顺序从上到下运行这个 API,并且可以进行一个断言,从而实现 e2e 测试的目的:

图 8:断言示例

这就是一个简单的示例使用。

5. 其他规则

5.1 为什么我没看到 ”开始“ 按钮

可能到这里,还是有同学是蒙的,为什么我写了一行:POST http://192.168.{{host}}/api/v3/sessions,并没有显示左边的 ”开始“ 按钮?这里是有一个 jetbrains 工具的默认规则,你用 .rest 或者 .http 后缀结尾的文件它都认为是 http 请求文件,都会去解析是否有 API 调用,所以,你需要确保你的文件名的后缀是 “.http” 或者 “.rest”。

5.2 为什么的 {{host}} 变量没有效果

在 Jetbrains 中,你需要用一个配置文件来配置这个变量,或者使用内置的变量,这里有 3 种类型:

5.3 我的 API 需要使用代理

没问题,HTTP 工具的代理使用的是 Jetbrains 的系统代理,你可以打开 “配置” 窗口,查看:

图 9:http 工具代理配置

5.4 更多 QA

请留言

6. Ref