什么是 hapi-swaggered-fork?
hapi-swaggered-fork 是一个基于 hapi.js 框架的插件,它能够自动生成 Swagger 文档,并提供 Swagger UI 界面。hapi-swaggered-fork 可以让我们将我们的 API 文档的编写工作自动化,大大地提高了开发效率。
hapi-swaggered-fork 的安装
使用 hapi-swaggered-fork 很容易,只需要通过 npm 安装即可:
npm install hapi-swaggered-fork --save
如何使用 hapi-swaggered-fork?
在使用 hapi-swaggered-fork 之前,我们需要先安装和配置 Swagger 文档的一个插件:hapi-swagger。可以通过以下命令进行安装:
npm install hapi-swagger --save
安装完成后,我们需要在 hapi.js 项目中加载这两个插件:
-- -------------------- ---- ------- ----- ---- - ---------------------- ----- ----- - ----------------------- ----- ------ - ------------------------ ----- ------------- - ------------------------------- ----- --------------- - ---------------------------------- ----- ---- - --------------------- ----- ------ - ------------- ----- ------------ ----- ---- --- ----- ---- - ----- -- -- - ----- ----------------- ------ ------- - ------- -------------- -------- - ----- - ------ ---------- -------- ------------- -- -- -- - ------- ---------------- -------- - ------ ---- --------------- ----- ----------------- --------------- - ------------- ---- - - - --- --------------- ------------------- ------- -- --------------------- -- -------
在以上代码中,我们首先通过 server.register
加载了所有需要的插件,其中:
HapiSwaggered
是 hapi-swaggered-fork 插件HapiSwaggeredUI
是 hapi-swaggered-fork 提供的 Swagger UI 界面插件Inert
和Vision
插件是用于支持 Swagger UI 界面的插件
在插件中,我们需要提供 HapiSwaggered
插件的一些必要配置,如 info
对象中的 title
和 version
:
options: { info: { title: Pack.name, version: Pack.version } }
值得注意的是,我们在上面的代码中配置了如下参数:
swaggerOptions: { validatorUrl: null }
这个参数的作用是禁用 Swagger UI 中的请求校验功能。因为如果启用此功能会导致 Swagger UI 中的所有请求都被拦截,所以我们设置此参数值为 null
。
最后,我们在项目中启动服务器,访问 /documentation
地址即可查看 Swagger UI 界面。
hapi-swaggered-fork 的使用示例
在上述代码中,我们已经完成了 hapi-swaggered-fork 的安装和配置,下面我们将使用 hapi-swaggered-fork 生成一个简单的 API 文档。我们将创建一个 /user
和 /user/{id}
的路由,并将它们注册到 hapi.js 服务器中:
-- -------------------- ---- ------- ----- ----- - - - --- -- ----- ----- ------- -- - --- -- ----- -------- ------- -- -- -------------- - ------- ------ ----- -------- -------- ----- --------- -- -- - ------ ------ -- ------- - ----- -------- ------------ ---- --- ------- ------ -------- - ---- -- --- -------- - -- - ------- ------ ----- ------------- -------- ----- --------- -- -- - ----- ---- - ------------ -- ---- --- ----------------------------- -- ------- ------ ---------------- --- ------------------ ------ ----- -- ------- - ----- -------- ------------ ---- ---- -- ---- ------ -------- - ------ ---- -- -- ---- --- ------- --------- - ------- ------------ --- ---------------------------------------- -- - - - ---
在以上代码中,我们定义了两个路由:
/user
:获取用户列表/user/{id}
:获取单个用户信息
除了路由的处理函数外,我们还为每个路由定义了一些 Swagger 文档必要参数,比如:
tags
:指定此路由所属的分组,可以在 Swagger UI 界面中控制显示与否description
:路由的描述文本notes
:路由说明
除此之外,我们还为 /user/{id}
路由定义了一个 validate
参数,用于校验请求参数。
最后,请注意这个示例只是 hapi-swaggered-fork 的极简用法,它还有许多功能和配置项可以探索。如果您想深入了解 hapi-swaggered-fork,请阅读官方文档。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006726a3660cf7123b3677e