npm 包 hapi-swaggered-fork 使用教程

阅读时长 7 分钟读完

什么是 hapi-swaggered-fork?

hapi-swaggered-fork 是一个基于 hapi.js 框架的插件,它能够自动生成 Swagger 文档,并提供 Swagger UI 界面。hapi-swaggered-fork 可以让我们将我们的 API 文档的编写工作自动化,大大地提高了开发效率。

hapi-swaggered-fork 的安装

使用 hapi-swaggered-fork 很容易,只需要通过 npm 安装即可:

如何使用 hapi-swaggered-fork?

在使用 hapi-swaggered-fork 之前,我们需要先安装和配置 Swagger 文档的一个插件:hapi-swagger。可以通过以下命令进行安装:

安装完成后,我们需要在 hapi.js 项目中加载这两个插件:

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

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

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

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

-------

在以上代码中,我们首先通过 server.register 加载了所有需要的插件,其中:

  • HapiSwaggered 是 hapi-swaggered-fork 插件
  • HapiSwaggeredUI 是 hapi-swaggered-fork 提供的 Swagger UI 界面插件
  • InertVision 插件是用于支持 Swagger UI 界面的插件

在插件中,我们需要提供 HapiSwaggered 插件的一些必要配置,如 info 对象中的 titleversion

值得注意的是,我们在上面的代码中配置了如下参数:

这个参数的作用是禁用 Swagger UI 中的请求校验功能。因为如果启用此功能会导致 Swagger UI 中的所有请求都被拦截,所以我们设置此参数值为 null

最后,我们在项目中启动服务器,访问 /documentation 地址即可查看 Swagger UI 界面。

hapi-swaggered-fork 的使用示例

在上述代码中,我们已经完成了 hapi-swaggered-fork 的安装和配置,下面我们将使用 hapi-swaggered-fork 生成一个简单的 API 文档。我们将创建一个 /user/user/{id} 的路由,并将它们注册到 hapi.js 服务器中:

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

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

在以上代码中,我们定义了两个路由:

  1. /user:获取用户列表
  2. /user/{id}:获取单个用户信息

除了路由的处理函数外,我们还为每个路由定义了一些 Swagger 文档必要参数,比如:

  • tags:指定此路由所属的分组,可以在 Swagger UI 界面中控制显示与否
  • description:路由的描述文本
  • notes:路由说明

除此之外,我们还为 /user/{id} 路由定义了一个 validate 参数,用于校验请求参数。

最后,请注意这个示例只是 hapi-swaggered-fork 的极简用法,它还有许多功能和配置项可以探索。如果您想深入了解 hapi-swaggered-fork,请阅读官方文档。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006726a3660cf7123b3677e

纠错
反馈