将Swagger生成的api文档转换成离线html文件

    网上有很多教程,找了很多,多数可用,但是对新手都不太友好,我们需要一个能快速上手的教程。
  • 写在前面
    我们使用的工具是Intellij Idea。

  • 集成步骤

  1. 新建一个maven工程,最简单的工程即可,在main目录下新建java文件,main->java,然后新建一个包名,创建一个java文件,写入main方法。
  2. 打开pom.xml,加入依赖,在dependencies填入下面配置
<dependency><groupId>io.github.swagger2markup</groupId><artifactId>swagger2markup</artifactId><version>1.3.3</version>
</dependency>

在dependencies同级目录下插入如下配置

<repositories><repository><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots><id>jcenter-releases</id><name>jcenter</name><url>http://jcenter.bintray.com</url></repository>
</repositories>

最后总结如下

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>io.github.swagger2markup</groupId><artifactId>swagger2markup</artifactId><version>1.3.3</version></dependency></dependencies><repositories><repository><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots><id>jcenter-releases</id><name>jcenter</name><url>http://jcenter.bintray.com</url></repository></repositories>

然后在pom.xml中,插入生成html的maven插件,将下面代码放入plugins目录下

<plugin><groupId>org.asciidoctor</groupId><artifactId>asciidoctor-maven-plugin</artifactId><version>1.5.6</version><configuration><sourceDirectory>./docs/asciidoc/generated</sourceDirectory><outputDirectory>./docs/asciidoc/html</outputDirectory><headerFooter>true</headerFooter><doctype>book</doctype><backend>html</backend><sourceHighlighter>coderay</sourceHighlighter><attributes><!--菜单栏在左边--><toc>left</toc><!--多标题排列--><toclevels>3</toclevels><!--自动打数字序号--><sectnums>true</sectnums></attributes></configuration>
</plugin>

注意:引入依赖包之后,可能存在包下载不下来的情况,这个是很容易出现的问题,此时你需要找到本地的maven库,删除出现问题的库,然后手动下载,拷贝进去,基本都是 clnl 这两个文件夹。

作为人道主义精神,我提供了这两个包的下载地址。

jar包下载地址

  1. 在创建好的java文件中,写生成代码,比如,我创建了一个叫做SwaggerToHtml的java类。
package org.word;import io.github.swagger2markup.GroupBy;
import io.github.swagger2markup.Language;
import io.github.swagger2markup.Swagger2MarkupConfig;
import io.github.swagger2markup.Swagger2MarkupConverter;
import io.github.swagger2markup.builder.Swagger2MarkupConfigBuilder;
import io.github.swagger2markup.markup.builder.MarkupLanguage;import java.net.URL;
import java.nio.file.Paths;public class SwaggerToHtml {// url是你swagger集成的web服务,要能访问到private static String url = "http://ip地址:端口/v2/api-docs";public static void main(String[] args) throws Exception {generateAsciiDocs();generateMarkdownDocs();generateConfluenceDocs();generateAsciiDocsToFile();generateMarkdownDocsToFile();}public static void generateAsciiDocs() throws Exception {//    输出Ascii格式Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder().withMarkupLanguage(MarkupLanguage.ASCIIDOC).withOutputLanguage(Language.ZH).withPathsGroupedBy(GroupBy.TAGS).withGeneratedExamples().withoutInlineSchema().build();Swagger2MarkupConverter.from(new URL(url)).withConfig(config).build().toFolder(Paths.get("./docs/asciidoc/generated"));}public static void generateMarkdownDocs() throws Exception {//    输出Markdown格式Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder().withMarkupLanguage(MarkupLanguage.MARKDOWN).withOutputLanguage(Language.ZH).withPathsGroupedBy(GroupBy.TAGS).withGeneratedExamples().withoutInlineSchema().build();Swagger2MarkupConverter.from(new URL(url)).withConfig(config).build().toFolder(Paths.get("./docs/markdown/generated"));}/*** 生成Confluence格式文档* @throws Exception*/public static void generateConfluenceDocs() throws Exception {//    输出Confluence使用的格式Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder().withMarkupLanguage(MarkupLanguage.CONFLUENCE_MARKUP).withOutputLanguage(Language.ZH).withPathsGroupedBy(GroupBy.TAGS).withGeneratedExamples().withoutInlineSchema().build();Swagger2MarkupConverter.from(new URL(url)).withConfig(config).build().toFolder(Paths.get("./docs/confluence/generated"));}/*** 生成AsciiDocs格式文档,并汇总成一个文件* @throws Exception*/public static void generateAsciiDocsToFile() throws Exception {//    输出Ascii到单文件Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder().withMarkupLanguage(MarkupLanguage.ASCIIDOC).withOutputLanguage(Language.ZH).withPathsGroupedBy(GroupBy.TAGS).withGeneratedExamples().withoutInlineSchema().build();Swagger2MarkupConverter.from(new URL(url)).withConfig(config).build().toFile(Paths.get("./docs/asciidoc/generated/all"));}/*** 生成Markdown格式文档,并汇总成一个文件* @throws Exception*/public static void generateMarkdownDocsToFile() throws Exception {//    输出Markdown到单文件Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder().withMarkupLanguage(MarkupLanguage.MARKDOWN).withOutputLanguage(Language.ZH).withPathsGroupedBy(GroupBy.TAGS).withGeneratedExamples().withoutInlineSchema().build();Swagger2MarkupConverter.from(new URL(url)).withConfig(config).build().toFile(Paths.get("./docs/markdown/generated/all"));}}
说明 :将上面代码整个拷贝进去,直接run就好了。执行完成将生成如下文件。当然,html现在是不会生成的,这是最后的结果图。

  1. 最后一步,执行maven插件命令,生成html文件
    点击工程左上角 Edit Configurations…,

在弹框中点击Template,往下拉找到maven。点击maven。然后在Working directory中找到自己的工程目录,在Command line中输入命令asciidoctor:process-asciidoc, 然后点击ok。

最后一步,点击右上角,Edit Configuration的下拉箭头,选择刚创建好的命令。

然后点击run运行,成功之后即可生成html。

  1. 然后再docs中,找到html文件夹,拷贝出all.html,用浏览器打开即可。
最后祝大家好运

Swagger2Markup应用_生成html文件相关推荐

  1. python调用自定义函数返回值的类型_生成dll文件以及python对DLL中函数的调用(参数类型以及返回值)...

    工具:VS2010    python2.7 (若使用的python是64位的,生成的dll也要使用x64) 系统:win7pro 64bit 首先,dll工程的创建以及dll文件的生成: new p ...

  2. npoi 执行公式_生成excel文件时NPOI无法计算公式

    NPOI库 . 已创建Excel文件,但未计算公式.这是我第一次使用NPOI库. 经过大量的谷歌搜索,我发现了一些代码片段,我用在我的代码计算公式,但仍然没有运气. 此例程使用随机数值和动态组合的公式 ...

  3. keil生成hex文件找不到_骚操作!用Python把公众号文章打包成pdf文件,再也不怕找不到了...

    背景 做自媒体的人,尤其是做了一年甚至更久的自媒体人,尤其是通过自媒体还有一些小收入的人,他们最怕自己的公众号内容因为各种原因而丢失,那就太可怕了! 在做自媒体内容上花了太多心血,如果突然一下就没了, ...

  4. python做相册_《自拍教程73》Python 自动生成相册文件夹

    案例故事: 接Python mediainfo批量重命名图片文件,测试图片是批量重命名好了, 但是将测试图片放于一个文件夹相册,图库App并不能显示图片信息, 为了测试的方便性, 需要把图片放到对应的 ...

  5. python制作相册_《自拍教程73》Python 自动生成相册文件夹

    这里将告诉您<自拍教程73>Python 自动生成相册文件夹,具体操作过程:案例故事: 接Python mediainfo批量重命名图片文件,测试图片是批量重命名好了, 但是将测试图片放于 ...

  6. Android Studio的res自动生成的文件出错了_莫韵乐与bug的奇妙冒险

    Android Studio的res自动生成的文件出错了_莫韵乐与bug的奇妙冒险 无论学什么编程语言都要跟奇怪的bug过不去 奇怪的bug出现了 今天满怀欣喜地进行安卓开发学习,创建好一个新的项目之 ...

  7. svn增量打包部署_利用svn的补丁文件打包生成增量文件

    下面的代码是maven版本 1. 创建patch.txt增量文件 保存到 文件目录下 比如 E:\aa\patch.txt 2. 编写java代码 package utils; import java ...

  8. 这是预编译工具生成的文件_组件化架构 10.编译优化

    软件研发中,耗费最多时间的并不是编写代码,而是代码编译和代码不断调试的过程 软件试错时间 Android基础编译流程 编译构建的四个步骤: 代码编译:将源代码,R文件,AIDL生成的文件等 编译成.c ...

  9. qmoc文件_手动生成MOC文件

    一直以来我都是将moc命令写成批处理文件,并且一直使用很正常,今早来要为一个类生成moc文件,批处理是直接由以前正常运行的批处理文件改成,应该是没有什么错误的,其结果却发现我所要的moc文件并没有生成 ...

最新文章

  1. LeetCode: 108. Convert Sorted Array to Binary Search Tree
  2. 读取csv文件 java_Java:逐步读取/流式传输CSV文件
  3. ubuntu jdk install
  4. 安装Win7或者XP系统用虚拟光驱加载Win7或者XP镜像 iso文件xp win7wim文件
  5. 数字电路(3)门电路(二)
  6. 样本量估算:随机对照试验(两组均数)比较的样本量计算方法
  7. 潘赟九宫格写作总结(精简背诵版)
  8. 笔记:《高效能人士的七个习惯》第十一章 再论由内而外造就自己
  9. Prometheus监控报警系统
  10. IE中对于本地地址不使用代理服务器的选项
  11. 《上海市居住证》积分申请的个人书面材料
  12. 学而优则仕:中国古代政治原生态(转自 百度 读书吧)
  13. 连通集(浙大数据结构习题)
  14. 怎么退出自适应巡航_自适应巡航功能是何方神圣?“全速域自适应巡航”又有什么作用呢...
  15. 公众无线局域网体系结构和运营模式
  16. STM32 CUBEMX 设置GPIO重映射
  17. H5项目友盟埋点上报实践
  18. 项目通过git托管到码云
  19. TCU-335xD直流充电桩计费控制单元 充电桩设计优良参考
  20. 五子棋--java数组实现稀疏数组保存棋盘

热门文章

  1. idea控制台上限取消
  2. 9 个 Yoinkmac使用小技巧,提升你的 Mac 文档解决效率
  3. 文心一言App在苹果AppStore上架;首款搭载ChatGPT的自行车问世;QQ Windows全新上架|极客头条
  4. 用python进行多项式拟合_python多项式拟合
  5. Search Bar On Browser_4
  6. ctf第二篇——give you flag(图片隐写)
  7. 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux
  8. XVID、DIVX是什么意思
  9. linux 打造ssh快捷连接
  10. 非线性方程求解专题——序言