现在基于OpenApi开发的接口,可以生成swagger,开启swagger UI使用起来非常方便,由于需要对外开放接口,将swagger暴露还是不太方便,需要生成静态的html文档,可以让第三方对接的开发人员可以查看文档。
要生成静态的Html文档,swagger本身是不支持的,但是swagger提供了swagger.json文件,可以使用该文件配合来生成文档,方法如下:
一、使用redoc生成Html文档
1、首先安装redoc,使用以下命令安装redoc
npm install -g redoc-cli
2、使用命令生成文档,使用以下命令,其中swagger.json就是swagger生成的Json文件,可以通过swagger导出该文件,并且将文件放在指定目录,命令执行成功后文档会放在与json文件所在的目录
redoc-cli bundle swagger.json -o api-docs.html
3、使用redoc命令还是指定文档的标题、使用模板等功能,常用参数选项如下
参数 | 说明 | 示例 |
---|---|---|
-o | 输出文件名 | -o docs.html |
--title | 自定义标题 | --title "API 文档" |
--template | 自定义模板 | --template custom.hbs |
--options | 配置选项 | --options.menuToggle=true |
--cdn | 使用 CDN 资源 | --cdn |
4、使用中遇到的问题,我是在win10中使用的redoc,使用命令成功安装了redoc工具,但是使用redoc-cli bundle swagger.json -o api-docs.html时报错,提示“不是内部命令也不是可执行文件或者批处理命令”,原因是权限不够,或者安装路径没有配置到系统环境变量中,解决办法配置环境变量或者使用以下命令即可:npx redoc-cli bundle openapi_swagger.json -o api-docs.html
二、使用NSwag,我是使用的上面的方法,该方法没有尝试过记录一下,命令如下
dotnet tool install -g NSwag.Console nswag swagger2tsclient /input:swagger.json /output:api-docs.html
这一切,似未曾拥有