• 【Java】Swagger2 结合spring boot 请求接口自动生成文档


    官方地址:https://swagger.io/
    功能主要有 1、提供后台访问地址,可对接口测试 2、生成各种离线文档 3、结合mock导入

    swagger-ui

    1、 maven依赖

            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.7.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.7.0</version>
            </dependency>
               
    

    2、配置类

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
        
        @Bean
        public Docket api(){
            return  new Docket(DocumentationType.SWAGGER_2).select()
                    // 接口包扫描,也可配置全项目扫描
                    .apis(RequestHandlerSelectors.basePackage("com.xxxxx"))
                    .paths(PathSelectors.any())
                    .build()
                    .apiInfo(apiInfo());
        }
    
        // API自定义描述信息
        private ApiInfo apiInfo(){
            return new ApiInfoBuilder()
                    .title("xxx Project APIs")
                    .description("xxxxxx 接口")
                    .termsOfServiceUrl("http:xxxxxx")
                    .version("1.0")
                    .build();
        }
    
    }
    

    3、访问路径
    可在此路径下进行接口查看,测试

    http://ip:port/swagger-ui.html
    

    离线文档生成

    以生成Markdown格式文档 为例

    前提swagger-ui 的访问路径是开启的,可访问 http://ip:port/v2/api-docs 返回的是接口描述的json

    1、maven 依赖

    <dependency>
                <groupId>io.github.swagger2markup</groupId>
                <artifactId>swagger2markup</artifactId>
                <version>1.3.1</version>
            </dependency>
    <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.3</version>
            </dependency>
    

    2、java 代码实现生成

    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 org.junit.Test;
    
    import java.net.URL;
    import java.nio.file.Paths;
    
    public class SwaggerCreateDocTest {
    
    
        @Test
        public 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("http://localhost:9999/v2/api-docs"))
                    .withConfig(config)
                    .build()
                    .toFolder(Paths.get("C:\Users\wb-ndz525238\Desktop"));
        }
    
    }
    
    “年轻时,我没受过多少系统教育,但什么书都读。读得最多的是诗,包括烂诗,我坚信烂诗早晚会让我邂逅好诗。” by. 马尔克斯
  • 相关阅读:
    ubuntu更强大的包管理工具:aptitude
    ubuntu下载自带的java-1.8
    [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)
    不能下载程序
    为什么你的电脑会变得越来越慢?
    win7常用键
    C# 遍历枚举(枚举是目的,遍历(获取)是手段)
    基于PCIe的高速接口设计
    Xilinx中的xapp1052理解
    把Xilinx的IPCORE解密成源代码的方法
  • 原文地址:https://www.cnblogs.com/jzsg/p/10881302.html
Copyright © 2020-2023  润新知