Swagger之导出API为MarkDown
在Java开发中,Swagger是开发中一个非常好的API自动生成文档,提供了接口请求格式、测试等功能,但是有时候我们需要把文档导出为文件,比如word等,不过在开发过程中我一般习惯导出为MarkDown文件,之前自己写过一个小工具,但是效果不理想,这次在github找到一个还不错的工具类。
引入jar包:
<dependency> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup</artifactId> <version>1.3.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.restdocs</groupId> <artifactId>spring-restdocs-mockmvc</artifactId> <version>2.0.3.RELEASE</version> <scope>test</scope> </dependency> 我是用的boot版本是2.X所以此包也使用2.X <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-staticdocs</artifactId> <version>2.6.1</version> <scope>test</scope> </dependency>
编写生成类文件:
@AutoConfigureMockMvc @AutoConfigureRestDocs(outputDir = "src/swagger") @RunWith(SpringRunner.class) @SpringBootTest public class SwaggerToMarkdownTest { @Autowired private MockMvc mockMvc; @Test public void Test() throws Exception{ String out = "src/swagger"; mockMvc.perform(get("/v2/api-docs").accept(MediaType.APPLICATION_JSON)) .andDo(SwaggerResultHandler.outputDirectory(out).build()) .andExpect(status().isOk()) .andReturn(); //生成markdown的配置 Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder() .withMarkupLanguage(MarkupLanguage.MARKDOWN) .withOutputLanguage(Language.ZH) .withPathsGroupedBy(GroupBy.TAGS) .build(); //获取swagger.json文件,输出到outputDir中 Swagger2MarkupConverter converter = Swagger2MarkupConverter.from(Paths.get("src/swagger/swagger.json")).withConfig(config).build(); converter.toFile(Paths.get(out)); } }
配置上述文件的时候,需要已经做好Swagger的配置,有相关的接口内容即可。