Insomnia 简单使用方法

news/2024/11/8 0:40:34/

文章目录

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

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。


http://www.ppmy.cn/news/45974.html

相关文章

FreeRTOS 的命名规则

初学 FreeRTOS 的用户对其变量和函数的命名比较迷惑&#xff0c;下面专门做一下介绍&#xff1a; ◆ 变量 ⚫ uint32_t 定义的变量都加上前缀 ul。u 代表 unsigned 无符号&#xff0c;l 代表 long 长整型。 ⚫ uint16_t 定义的变量都加上前缀 us。u 代表 unsigned 无符号&#…

2、Web前端学习规划:HTML - 学习规划系列文章

今天先写Web前端最基本的语言&#xff1a;HTML。目前已经到了HTML5版本&#xff0c;作为Web基本语言&#xff0c;笔者认为这个是最先需要学习的语言。 1、 简介&#xff1b; HTML(HyperText Markup Language)是一种用于创建网页的标记语言。它使用标签和属性来描述网页的结构和…

channel 源码解析(5问)

目录 1.channel底层数据结构是什么 2.channel创建的底层实现 3.channel 的发送过程 4.channel的接受过程 5.关闭 channel 1.channel底层数据结构是什么 channel底层的数据结构是hchan,包括一个循环链表和2个双向链表 type hchan struct {qcount uint // tota…

Prometheus - Grafana 监控 MySQLD Linux服务器 demo版

目录 首先是下载Prometheus 下载和安装 配置Prometheus 查看监控数据 监控mysql demo 部署 mysqld_exporter 组件 配置 Prometheus 获取监控数据 -------------------------------------- 安装和使用Grafana 启动Grafana -------------------------------------- 配…

多通道振弦传感器无线采集仪与参数配置工具连接

多通道振弦传感器无线采集仪与参数配置工具连接 VS101~VS432 设备配备了专门的参数配置工具 SETP 来完成设备工作参数的查看和修改工作。 连接前的准备工作 &#xff08; 1&#xff09;数据接口与计算机连接 使用标配的通讯线与计算机 RS232 接口连接。 若需基于手机网络发送数…

BGA封装与PCB差分互连结构的设计与优化

摘要&#xff1a;随着电子系统通信速率的不断提升&#xff0c;BGA封装与PCB互连区域的信号完整性问题越来越突出。 针对高速BGA封装与PCB差分互连结构进行设计与优化&#xff0c;着重分析封装与PCB互连区域差分布线方式&#xff0c;信号布局方式&#xff0c;信号孔/地孔比&…

Linux移动文件和文件夹(目录)命令

命令mv 英文move 翻译移动 mv命令可以移动文件或文件夹&#xff08;目录&#xff09;&#xff0c;也可以重命令&#xff08;覆盖&#xff09;文件。 1. 移动文件/重命名 单纯地移动某一个文件直接使用&#xff1a; mv <源文件名称/地址> <新文件名称/地址>这个方法…

【刷题之路Ⅱ】LeetCode 3381.搜索旋转排序数组ⅠⅡ

【刷题之路Ⅱ】LeetCode 33&81.搜索旋转排序数组Ⅰ&Ⅱ 一、题目描述二、解题1、方法1——暴力法1.1、思路分析1.2、代码实现 2、方法2——二分法2.1、思路分析2.2、代码实现2.3、升级到81题2.3.1、改进思路分析2.3.1、改进代码实现 3、改进二分法3.1、思路分析3.2、代码…