我是如何建立自己的失眠插件的

189 阅读6分钟

[

Tyler Hawkins

](thawkin3.medium.com/?source=pos…)

泰勒-霍金斯

关注

6月9日

-

5分钟阅读

[

拯救

](medium.com/m/signin?ac…)

我如何建立自己的失眠插件

只用了几行代码!

My Insomnia plugin (requests-desktop-notification)

我的Insomnia插件(request-desktop-notification)

Insomnia是一个开源的API客户端,可以帮助你测试和调试GraphQL、gRPC和REST API端点。尽管Insomnia很强大,但有时你想进一步扩展其功能,你可以通过插件来实现。

Insomnia Plugin Hub上有许多伟大的插件,都是由开源社区贡献的。更令人兴奋的是,如果你愿意做出贡献,你可以建立你自己的插件!

在这篇文章中,我们将探讨我建立的一个插件,然后向你展示如何建立一个你自己的Insomnia插件。

插件演示

我的插件是一个简单的补充,它允许你启动一个文件夹中的所有请求,然后在所有请求完成后显示一个桌面通知。

Context menu item allows you to “Send All Requests” inside the Insomnia app

上下文菜单项允许您在Insomnia应用程序中 "发送所有请求"。

如果你像我一样是一个习惯性的多任务处理者,你可能会在工作时快速地在几个应用程序之间循环。你的IDE,你的终端,你的浏览器,以及Insomnia可能是其中的几个。

如果你的文件夹里有大量的请求,而又不想等待它们全部完成,你可以在等待的时候继续做其他事情,一旦工作完成,就会得到通知。

Desktop notification appears once all requests have been sent

一旦所有请求被发送,就会出现桌面通知

你可以在npm上找到我的插件的包,或者在这里查看GitHub repo

插件安装

你可以通过Insomnia桌面应用程序的设置页面来安装Insomnia插件。只需点击应用程序右上角的齿轮图标,然后选择 "插件 "标签。在文本输入中搜索任何插件名称,然后点击 "安装插件 "按钮,将该插件添加到您的应用程序。

就我的插件而言,其名称为insomnia-plugin-requests-desktop-notification

My Insomnia plugin (requests-desktop-notification)

安装 requests-desktop-notification 插件

插件的使用

一旦你安装了插件,你就可以开始使用它了--不需要重新启动你的Insomnia应用程序。插件有几种变化。有些是给各种钩子添加行为,如请求钩子或响应钩子。其他的则是在应用程序的下拉菜单中添加新的项目。你甚至可以通过插件安装一个自定义的主题

我的插件为请求文件夹的下拉菜单添加了一个新项目。要看到它的作用,你可以导航到你的Insomnia应用程序的 "调试 "区域。然后,创建一个新的文件夹并向其添加一些请求(如果你已经有一个文件夹,则使用现有的文件夹)。

接下来,点击文件夹名称右侧的下拉触发按钮,打开下拉菜单。在默认的菜单项中,你现在也会看到一个我的插件添加的自定义菜单项。"发送所有请求"。

Context menu item allows you to “Send All Requests” inside the Insomnia app

上下文菜单项允许你在Insomnia应用程序中 "发送所有请求"。

选择该菜单项来发送你文件夹中的所有请求。一旦所有请求被完成,一个桌面通知将出现在你的机器上。Ta-da!

Desktop notification appears once all requests have been sent

一旦所有请求被发送,就会出现桌面通知

如何建立一个失眠症插件

那么,我是如何建立这个的呢?嗯,它实际上很简单!该插件是一个小的JavaScript应用程序,由一个main.js 文件和一个package.json 文件组成。对于桌面通知功能,我使用了 [node-notifier](https://www.npmjs.com/package/node-notifier)npm包。

创建一个新的Insomnia插件时,你可以通过导航到Insomnia应用程序的设置屏幕,点击 "插件 "标签,然后点击 "生成新插件 "按钮来引导你的插件。

Use the “Generate New Plugin” button to bootstrap your plugin

使用 "生成新插件 "按钮来引导您的插件

这将为您的插件创建一个新的目录,并将其放置在Insomnia在本地保存所有插件的文件夹中。它还会自动为你创建main.jspackage.json 文件。

从那里,我在我的main.js 文件中写了以下代码。看看它有多短!

让我们一起走过这段代码。首先,它需要我们依赖的两个依赖项:pathnode-notifierpath 是一个内置模块,但我需要通过在终端运行yarn add node-notifier 来安装node-notifier

  • 代码的主要部分是在requestGroupActions 数组中添加一个新条目。这就是在下拉菜单中为我们的请求文件夹创建新的菜单项的原因。
  • label 是该菜单项的文本。
  • action 是当有人选择该菜单项时我们要运行的代码。

action 函数中,我们做以下工作。

  1. 收集文件夹中的所有请求。
  2. 发送它们。
  3. 一旦所有的请求都完成了,就调用notifier.notifytitle,message,icon, 和sound 属性都配置了我们的桌面通知。

这就是了!这个插件真的很简单。这个插件真的就是这么简单。

一旦我写了这段代码,我就能浏览到我的Insomnia应用程序的设置页面,然后是 "插件 "标签,然后点击 "重新加载插件 "按钮,重新加载最新的变化。之后,该菜单项出现在我的请求文件夹的下拉菜单中。

发布到npm

写完我的插件后,我在本地的一切工作都很顺利。但我也想与更广泛的社区分享这个插件。为了做到这一点,我需要把它发布到npm。为了做到这一点,我把最新的代码推送到我的GitHub repo,用npm login 登录我的npm账户,然后用npm publish 发布我的软件包。

在发布了软件包的初始版本后,我对代码进行了一些更新,用npm version <major|minor|patch> ,生成了一个新的软件包版本,用git push --tags ,将标签推送到GitHub,用git push ,将代码推送到GitHub,然后用npm publish ,将新的软件包版本发布到npm。

一旦我的软件包在npm注册表中发布,它就会在接下来的24小时内自动添加到Insomnia Plugin Hub。

总结

你已经有了 - 我是如何建立我自己的Insomnia插件的,你也可以。

简而言之,Insomnia对于构建、测试和调试API非常有用。插件让你扩展Insomnia的功能。

构建你自己的自定义插件很容易。你只需要几行代码就可以添加新的功能