Insomnia 简单使用方法

文章目录

  • 1. 新建工程
  • 2. 新建若干文件夹
  • 3. 设置环境变量
  • 4. 授权以及进行请求的链式调用 (chaining requests)
    • 4. 1 解决办法 1
    • 4. 2 解决办法 2

Insomnia 同 Postman, 用于测试后端 endpoint,很容易使用。
使用步骤如下:

1. 新建工程

2. 新建若干文件夹

目的是对请求进行归类,例如与 store 相关的请求都放到一个叫做 store 的文件夹中,下图所示的工程有4个文件夹:Store, User, Items, Tags

Insomnia 简单使用方法_第1张图片

3. 设置环境变量

例如 url,如果修改了 url 或者端口号,设置并使用环境变量,就不需要每个请求手动修改。比方说,将所有请求中的 http://127.0.0.1:5000 手动改成 http://127.0.0.1:5005,会比较繁琐。
编辑环境变量可以点击 UI 中的 No Environment -> Managements,也可以使用 Ctrl + E 打开,然后设置 url,这里的名称可任意,但后面使用时要与其一致:

Insomnia 简单使用方法_第2张图片

设置之后,请求的路径例如 http://127.0.0.1:5005/store 可以改成 {{url}}/store, {{url}} 会自动变成紫色,如下图所示:

Insomnia 简单使用方法_第3张图片

4. 授权以及进行请求的链式调用 (chaining requests)

授权可以使用 jwt,jwt 在用户 login 之后获得,执行特定的操作需要此 token,例如 POST,DELETE,PUT 等,直观的测试方法是,先发送 login 请求,然后复制响应中的 jwt token,然后将其粘贴到需要授权的请求的 Header 中:Bearer ,如下图所示:

Insomnia 简单使用方法_第4张图片

如果 token 过期,需要重新 login,再次复制 token 并粘贴到这里,粘贴复制的方法繁琐。

4. 1 解决办法 1

Bearer 后按 Ctrl + Space, 出现下拉列表,选择 Response =>Body Attribute (中文输入状态不会出现下拉列表,要切换成英文)

Insomnia 简单使用方法_第5张图片

然后点击红色的文字进行设置。在 Filter(JSONPath or XPath) 一项,单独输入 $ 可看到完整的 login 响应, 其中有一项是 access_token, $.access_token 可获得 jwt,(这里的 access_token 可以是其他名称,根据 login 响应而定。最右端的设置图标不要点,默认就可以)

Insomnia 简单使用方法_第6张图片

Trigger Behavior 可以选择当 jwt 过期后,如果执行此请求,Insomnia 自动发送一条 login 请求,重新获得 jwt token, 那么要多长时间后发送 login 请求呢,例如可以设成 300,即5分钟。
假如说 jwt 的有效时间是极短的 10 秒,而上图中的 Max age 设 60 秒,则 10 秒之后,jwt 失效,因此 10 秒之后的 50 秒内 post 请求全部失败,一直到第 61秒发送 post 请求时,Insomnia 自动发送 login 请求获取新的 token,post 请求 ok,以下是 Docker log:

Insomnia 简单使用方法_第7张图片

设置完成后的界面:

Insomnia 简单使用方法_第8张图片
此方法虽然可以自动获得 jwt token,不再需要从 login 响应中复制 jwt token 再粘贴到其他请求的 Header 里,但是每个需要授权的请求都要这样设置一遍,也不算特别理想。

4. 2 解决办法 2

同样设置环境变量,Ctrl + E,添加一项 access_token, 然后 Ctrl + Space, 同上面的设置步骤,(测试发现唯一有区别的地方是,这里 Max age 无法修改成 60 以外的值,每次重新打开 Edit Tag 界面都发现是 60) ,设置完成后如下图所示:

Insomnia 简单使用方法_第9张图片

之后,Header 中的 Bearer 后直接加 {{access_token}} 就可以,每条需要授权的请求都可以这样加:

Insomnia 简单使用方法_第10张图片

这样就实现了请求的链式调用,之后执行需要授权的操作,不再需要复制粘贴 jwt。

你可能感兴趣的:(后端)