能否将Swagger交互式API文档导出为静态HTML上传至Confluence?
解决方案
方案1:打包对应版本Swagger UI静态资源(推荐,100%还原项目内效果)
这个方案可以完全保留你项目里Swagger UI的交互能力、样式效果,支持接口调试、参数折叠等所有原有功能:
- 第一步:访问你运行中的Spring Boot项目的
/v2/api-docs接口,把返回的完整JSON内容保存为swagger.json文件 - 第二步:获取与你依赖版本匹配的
springfox-swagger-ui2.9.2版本的静态资源包,取出dist目录下的全部文件 - 第三步:修改dist目录下的
index.html,找到默认的Swagger JSON地址配置,将原值替换为本地的swagger.json路径,示例修改如下:
// 修改前 url: "https://petstore.swagger.io/v2/swagger.json" // 修改后 url: "./swagger.json"
- 第四步:把你导出的
swagger.json放到dist目录下,此时直接打开index.html就能得到和项目内完全一致的Swagger文档效果
方案2:适配Confluence的单文件打包方案
如果你的Confluence只支持上传单个HTML文件,可以将所有资源内联到单个HTML中:
- 把
swagger.json的内容直接赋值给index.html的Swagger配置的spec字段,替换原有url配置,示例:
spec: <这里直接粘贴你完整的swagger JSON内容>,
- 把index.html中引用的外部css、js文件内容全部复制到对应位置,css内容放到
<style>标签内,js内容放到<script>标签内,删除外部资源引用 - 最终生成的单个HTML文件可直接上传到Confluence,打开后完全保留原有交互和样式
注意事项
- 必须使用和你依赖版本一致的Swagger UI静态资源,不要使用3.x及以上版本,避免出现样式、兼容性差异
- 若需要精简页面(比如隐藏Swagger logo、顶部地址输入框),可直接在index.html中添加自定义CSS隐藏对应元素,更适配Confluence的展示场景
内容的提问来源于stack exchange,提问作者midi
相关产品推荐
相关产品推荐

