在 HapiJS 中使用 Swagger

Swagger 是一个流行的 API 开发框架,它允许我们使用可读性强、可视化的格式来定义和文档化 RESTful API。HapiJS 是一种非常受欢迎的 Node.js web 应用程序框架,它提供了一个强大的基础设施来创建可维护和可扩展的应用程序。结合使用这两个框架,我们可以轻松地定义和文档化我们的 HapiJS RESTful API。

安装 Swagger

在 HapiJS 中使用 Swagger,我们需要先安装 swagger 插件到 HapiJS 应用程序中:

--- ------- ------------

使用 Swagger 插件

安装完成插件后,我们需要配置 HapiJS 应用程序,以便它可以使用 Swagger 插件来定位我们的 API 文档,也就是 Swagger JSON 文件。

----- ---- - ----------------
----- ----- - -----------------
----- ------ - ------------------
----- ----------- - ------------------------
----- ---- - ---------------------

----- ------ - --- -------------
    ----- ------------
    ----- ----
---

----- -------- ------- -
  ----- -----------------
    ------
    -------
    -
      ------- ------------
      -------- -
        ----- -
          ------ ---- ---------------
          -------- ------------
        -
      -
    -
  --

  --------------
    ------- ------
    ----- ----
    -------- --------- -- -- -
      ------ ------ -------
    -
  ---

  ----- ---------------
-

--------

在 HapiJS 应用程序中,我们需要在 register 方法调用中添加 swagger 插件 - HapiSwagger。在这个例子中,我们还通过 info 参数指定了文档的名称和版本。在 options 参数中可以设置更多的参数来定制 Swagger 的文档。

添加 Swagger 注释

通过在 API 定义中添加特殊注释 Joi,我们可以使用 Swagger 来解析 HapiJS 验证规则,并将其与 API 文档一起显示。

--------------
  ------- ------
  ----- ------------
  ------- -
    ----- --------
    ------------ ---- ---- -- -----
    ------ -------- - ---- ---- --- --------- -----
    --------- -
      ------- -
        --- -------------------------------------------------- -- -- --- --------
      -
    --
    --------- -
      ------- ------------
        ----- ------------------------
        ---- ----------------------------------
        ------ -----------------------
      --
    -
  --
  -------- --------- -- -- -
    ----- -- - ------------------
    ----- ---- - ----------------- -- ------- --- -------
    ------ -----
  -
---

config 参数中,我们可以为每个 API 定义定义 Swagger 注释。在这个例子中,我们使用了 tagsdescriptionnotesvalidateresponse 注释来定义一个简单的 GET API,用于根据 ID 获取用户信息。其中,validate 注释定义了参数的验证规则,response 注释定义了返回结果的结构。

产生 Swagger 文档

Swagger JSON 文件可以由 Swagger UI 在运行时自动生成,我们可以使用 Swwgger UI 来查看并测试我们的 API 文档。

--------------
  ------- ------
  ----- --------------------
  -------- --------- -- -- -
    ----- ----------- - ---------------------------------------------------------
    ------ ------------
  -
---

在这个例子中,我们定义了另一个 GET API 来返回 Swagger JSON 文档。在这里,我们从本地文件系统中读取 Swagger JSON 文件并返回它的内容。

使用 Swagger UI

安装 Swagger UI:

--- ------- ---------------

在应用程序中使用它:

--------- -----
------
------
  ----- ----------------
  -------------- ----------
  ----- ---------------- -----------------------------------------
  ------- -------------------------------------------------------
  ------- ------------------------------------------------------------------
-------
------
  ---- ---------------------- 
  --------
    ------------- - -------- -- -

      ----- -- - -----------------
        ---- --------------------
        ------- --------------
        -------- -
          -----------------------------
          -------------------------
        --
        ------- ------------------
      ---
    
      --------- - ---
    -
  ---------
-------
-------

在这个例子中,我们在 HTML 文件中添加了 Swagger UI 的引用。在 window.onload 方法中,我们初始化了 Swagger UI 设置。在这里,我们设置了基本 URL 和显示 Swagger UI 的 DOM 元素的 ID。

结论

在 HapiJS 应用程序中使用 Swagger 来文档和测试 RESTful API,可以帮助我们更好地管理和维护应用程序。Swagger 提供了一个简单的方式来定义、文档化和测试 API,并且与 HapiJS 好的集成性,让我们的工作变得更加高效。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66fb9efe44713626015f95f2