spring springboot 配置swagger


总结

knife4j 这个玩意儿封装了swagger ,所以配置更简单!除了单体,微服务架构也可以使用!

配置文件



@EnableSwagger2
@EnableKnife4j
@Configuration
@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")
public class SwaggerConfig   {
    @Bean
    public Docket createRestApi() {


//        List pars = new ArrayList();
//
//        //构建默认参数
//        ParameterBuilder ticketPar = new ParameterBuilder();
//        ticketPar.name("Content-Type").description("Content-Type")
//                .modelRef(new ModelRef("string")).parameterType("header")
//                .required(true)
//                .defaultValue("application/json").build();
//        pars.add(ticketPar.build());
//        //构建默认请求验证参数
//        ticketPar = new ParameterBuilder();
//        ticketPar.name("Authorization").description("Authorization")
//                .modelRef(new ModelRef("string")).parameterType("header")
//                .required(true)
//                .defaultValue("111111111111111111111111111111111111111111111111").build();
//        pars.add(ticketPar.build());


        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
                //使用上面的默认参数.build().globalOperationParameters(pars);
    }

    //构建 api文档的详细信息函数
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //页面标题
                .title("功能测试")
                //创建人
                .contact(new Contact("author", "url", "email"))
                //版本号
                .version("1.0")
                //描述
                .description("API 描述")
                .build();
    }

}

依赖

    
        1.8
        UTF-8
        1.10.1
        Hoxton.SR6
        2.3.9.RELEASE
        2.2.1.RELEASE
        0.2.2.RELEASE
        5.1.37
        3.2.0
        1.2.70
        2.2.1.RELEASE
        2.2.4
        2.0.2

    


  
        
            com.github.xiaoymin
            knife4j-spring-boot-starter
            ${knife4j.version}
        

        
            com.github.xiaoymin
            knife4j-micro-spring-boot-starter
            ${knife4j.version}
        

@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")

这个是主要解决,可以在yml中配置是否启用swagger的

yml

swagger:
  enable: true

Spring Cloud微服务架构中使用

在Spring Cloud的微服务架构下,每个微服务其实并不需要引入前端的Ui资源,因此在每个微服务的Spring Boot项目下,引入knife4j提供的微服务starter

    
  com.github.xiaoymin    
  knife4j-micro-spring-boot-starter    
  ${knife4j.version}

在网关聚合文档服务下,可以再把前端的ui资源引入

    
   com.github.xiaoymin    
   knife4j-spring-boot-starter    
   ${knife4j.version}

上图

参考

https://blog.csdn.net/xiaoxiaole0313/article/details/104935547

问题

网关搞聚合没有成功!

但可以网关地址加服务地址访问文档 此处网关是8000 hm-demo是8801
http://127.0.0.1:8000/hm-demo1/doc.html#/home