在现代 Web 开发中,RESTful API 已经成为了构建网站或应用程序的一种主流方式。Swagger 是一款流行的 API 规范和工具,它可以生成 API 描述文件,方便前后端协作。
然而,由于人为或其他因素的错误,API 可能会发生变更。为了避免这种情况,在 API 开发过程中使用 Swagger 生成的 API 描述文件进行验证是一种优秀的做法。而本文将介绍一款基于 Swagger 的 API 描述文件的验证工具:npm 包 @jsonsonson/swagger-express-validator。
什么是 @jsonsonson/swagger-express-validator
@jsonsonson/swagger-express-validator 是一款使用 Swagger 定义文件的 Middleware,用于验证请求和响应对象是否符合 API 的描述文件。通过使用该工具,可以避免人为错误和 API 版本不同步的问题。
安装 @jsonsonson/swagger-express-validator
使用 npm 命令即可安装:
npm install @jsonsonson/swagger-express-validator --save
如何使用 @jsonsonson/swagger-express-validator
准备
在使用 @jsonsonson/swagger-express-validator 之前,需要先准备 Swagger 定义文件。Swagger 定义文件是以 YAML 或 JSON 格式声明的文档,可以被 @jsonsonson/swagger-express-validator 用于生成请求和响应对象的验证规则。下面是一个 Swagger 定义文件示例:
-- -------------------- ---- ------- -------- ----- ----- ------ -- --- -------- ----- ----- --------------- --------- --- -------- - ----- ------ ------- ---- -------- --- - ---- -- ----- ---------- ---- ------------ -- ------- ----- ----- ------ ----- -------------------- ----- -------- ------ - ---- ----------- - ----- ---- --- ---- ------------ ---- -- ------ --------- ---- ------- ----- -------------------- ---------- ---- ------------ ------- ------- ----- -------------------- ---------------- ---- -------- --- - ---- ------- ----------- - ----- ------ --- ---- ----- ------ --------- ---- ---------- ---- ------------ -- ------- ----- -------------------- ---- -------- ------ - ---- ----------- - ----- ------ --- ---- ----- ------ --------- ---- - ----- ---- --- ---- ------------ ---- -- ------ --------- ---- ------- ----- -------------------- ---------- ---- ------------ -- ------- ----- -------------------- ------------ ----- ----- ------ --------- - -- - ---- ----------- --- ----- ------ ------- ---- ----- ----- ------
使用
在 Express 应用程序中添加 @jsonsonson/swagger-express-validator:
-- -------------------- ---- ------- ----- ------- - ------------------ ----- ----------------------- - ------------------------------------------------ ----- --------------- - ------------------------- ----- --- - --------- ------------------------------------------------- ----------------- ----- ---- ----- -- - ---------- ---- ---- ----- -------- ---- ---- ----- ------- -- -- ------------------ ----- ---- ----- -- - ------------------------------ -- ------------------------- ----- ---- ----- -- - ------------- ------------------ ----- -------- -- ------------------------- ----- ---- ----- -- - ------------------ -- ----- ---- - ---------------- -- ---- ---------------- -- -- ------------------- --------- -- ----------
在该示例中,我们使用了 Express 框架处理请求,并使用 @jsonsonson/swagger-express-validator 验证请求和响应对象是否符合 API 描述文件。
在上述代码中,我们使用了中间件 swaggerExpressValidator 以 Swagger 的定义文件 swaggerDocument 初始化。在路由处理程序中,我们依然可以正常使用 req 和 res 对象。
Swagger 定义文件中声明了 users,因此在路由处理程序中我们处理了 /users 和 /users/{userID} 两个请求。GET 方法的响应都是一串假的用户数据,POST 和 PUT 方法分别返回请求的 body。
请求和响应数据符合 Swagger 定义文件中标明的数据格式。
讨论
Swagger 作为 API 规范和工具已经在很多公司和组织中得到了广泛的应用。而使用 @jsonsonson/swagger-express-validator 可以进一步提高 API 的质量和稳定性,避免人为错误和 API 版本不同步等问题。
本文介绍了 @jsonsonson/swagger-express-validator 的安装和使用,并附带了一个表单验证的实例,希望读者们能够对该工具产生兴趣,并在实际项目中加以应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056c5381e8991b448e5d53