zoukankan      html  css  js  c++  java
  • 【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. 马尔克斯
  • 相关阅读:
    OnEraseBkgnd、OnPaint与画面重绘
    .编译ADO类DLL时报错的解决方案
    VC列表框样式
    Codeforces 131D. Subway 寻找环树的最短路径
    Codeforces 103B. Cthulhu 寻找奈亚子
    Codeforces 246D. Colorful Graph
    Codeforces 278C. Learning Languages 图的遍历
    Codeforces 217A. Ice Skating 搜索
    Codeforces 107A. Dorm Water Supply 搜图
    Codeforces 263 D. Cycle in Graph 环
  • 原文地址:https://www.cnblogs.com/jzsg/p/10881302.html
Copyright © 2011-2022 走看看