众所周知,Hapi 是用于构建 Web 应用程序的现代 Node.js 框架,但是很多人可能不知道,在 Hapi 应用程序中使用网关是非常常见的做法。网关可以在应用程序和外部 API,微服务等之间作为代理,可用于协调请求流量,增强应用程序的安全性,从而成为一个快速,可靠的解决方案。在本文中,我们将介绍 Hapi 框架的网关插件 —— hapi-gateway,并说明其如何使用。
安装
首先,我们需要安装 hapi-gateway 插件。可以使用以下 npm 命令在您的项目根目录中安装 hapi-gateway。
npm install hapi-gateway --save
配置
接下来,我们需要在 Hapi 应用程序的配置中添加一些对象,以配置我们的网关插件。
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ----------- - ------------------------ ----- ------ - --- ------------- ----- ----- ----- ------------ --- ----- -------------- - - ------- - - ----- --------- -------- -------- ------- - -------- - ---- ----------------------------- - - -- - ----- --------- -------- -------- ------- ------- - -------- - ---- ---------------------------------- - - - - -- ----- -------- ------ - --- - ----- ---------------------------- ---------------- -------------- ------- ------ ----- --------- -------- ----------------- -- - ------ ------ -------- - --- ----- --------------- ------------------- ------- --- --------------------- - ----- ----- - ------------------ -------- ------- ----------------- - -- -------
如上所示,我们首先将 Hapi 和 hapi-gateway 加载到我们的应用程序中。
然后我们定义了我们网关的路由及其配置。可以看到,我们正在为一个 GET 方法 /test1 设置网关。该网关指向我们正在运行的本地服务的单个端点。我们还为 POST 和 PUT 方法 /test2 设置网关。这个网关接受一个参数 id,它将 id 插入 URL 中。
config: { gateway: { url: 'http://localhost:3001/test2/{id}' } }
请注意,我们还将每个路由的参数传递给 hapi-gateway 插件,以便它按照我们的要求执行路由。
使用
我们已经完成了网关的配置,现在可以在我们的应用程序中使用它了。尝试访问 http://localhost:3000/test1 和 http://localhost:3000/test2/1。这些请求现在都通过我们的网关代理。
在我们的应用程序中以这种方式配置网关的最大优点在于,我们可以将所有的 API 聚合到一个统一的端点上。我们可以有多种不同的外部服务和接口,但是我们的客户端仅需要了解一个端点。这可以使代码更简单,更易于维护。
下面是一个完整的示例代码,展示了 hapi-gateway 在 Hapi 应用程序中的使用。
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ----------- - ------------------------ ----- ------ - --- ------------- ----- ----- ----- ------------ --- ----- -------------- - - ------- - - ----- --------- -------- -------- ------- - -------- - ---- ----------------------------- - - -- - ----- --------- -------- -------- ------- ------- - -------- - ---- ---------------------------------- - - - - -- ----- -------- ------ - --- - ----- ---------------------------- ---------------- -------------- ------- ------ ----- --------- -------- ----------------- -- - ------ ------ -------- - --- ----- --------------- ------------------- ------- --- --------------------- - ----- ----- - ------------------ -------- ------- ----------------- - -- -------
结论
在本文中,我们介绍了 Hapi 框架的网关插件 —— hapi-gateway,并演示了如何安装和配置该插件。我们还提供了一个完整的示例代码,展示了如何在 Hapi 应用程序中使用 hapi-gateway。
使用 hapi-gateway 可以有效地协调请求流量和增强应用程序的安全性,更好的管理和维护多个外部服务和接口。如果您正在使用 Hapi 框架构建 Web 应用程序并需要使用网关,并不妨考虑 hapi-gateway。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/671f709c2e7021665efd9ca8