Insomnia 简单使用方法

文章介绍了如何使用Insomnia测试后端接口,包括新建工程和文件夹来组织请求,设置环境变量以方便管理URL,以及如何处理JWT授权。针对授权问题,提出了两种解决方案:一是通过响应中的Body属性自动获取和更新token;二是设置环境变量实现请求的链式调用,避免手动复制粘贴JWTtoken。
摘要由CSDN通过智能技术生成


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

1. 新建工程

2. 新建若干文件夹

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

在这里插入图片描述

3. 设置环境变量

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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

4. 1 解决办法 1

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

在这里插入图片描述

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

在这里插入图片描述

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:

在这里插入图片描述

设置完成后的界面:

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

4. 2 解决办法 2

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

在这里插入图片描述

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

在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值