SwaggerUI,在Java里应该是常用工具,能根据api文件自动生成网页版的api文档界面,感觉挺有意思的,其实他支持各种语言,本篇分享一下在node里的简单配置方法,顺手搭建了个简单的服务。
(p.s. 本篇后续有续篇,利用本篇的服务,介绍一下前端的状态管理组件React Query的玩法,配合本篇搭建的服务使用。)
基本架构
初始化项目,安装依赖:
1 | npm init -y |
index.js
如下:
1 | const express = require("express"); |
试着运行一下,会发现生成了一个 db.json
文件,总体目录如下:
server
|__node_modules/
|__db.json
|__index.js
|__package.json
|__yarn.lock
建立路由
1 | mkdir route && cd route && touch books.js |
books.js
如下:
1 | const express = require("express"); |
应用SwaggerUI:
在 index.js
里引用 SwaggerUI
,添加如下配置:
1 | const swaggerUI = require("swagger-ui-express"); |
可在界面看到:
自动生成api文档页面:
参照其文档,比较有意思的是swagger-jsdoc,他将多行注释里的api配置转换为页面的文档配置,我们将 route/books.js
改写为以下格式:
1 | /** |
重跑服务,可以发现以下界面:
swagger-jsdoc
是通过 openapi
的3.0版本进行的改动,传统的 openapi
是通过独立的 json
文件对 swagger进行配置,不在本篇讨论范围,感兴趣的可以看看这篇国外的demo