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. 马尔克斯
  • 相关阅读:
    HTTP/2之服务器推送(Server Push)最佳实践
    QQ空间掉帧率优化实战
    “战术竞技类”外挂打击已开始!揭秘腾讯We Test游戏安全服务新动作!
    你知道android的MessageQueue.IdleHandler吗?
    Hi,腾讯WeTest联合Unity官方打造的性能分析工具UPA,今日全新发布!
    一次触摸,Android到底干了啥
    面向亿万级用户的QQ一般做什么?——兴趣部落的Web同构直出分享
    双十一临近,怎样让买家流畅地秒杀? ——腾讯WeTest独家开放电商产品压测服务
    mybatis-generator 覆盖新增XML
    Jvm 虚拟机
  • 原文地址:https://www.cnblogs.com/jzsg/p/10881302.html
Copyright © 2011-2022 走看看