spring boot 2.3 整合 swagger 3

spring boot version 2.3

pom


		
            io.springfox
            springfox-spring-webmvc
            3.0.0-SNAPSHOT
        
        
            io.springfox
            springfox-swagger-ui
            3.0.0-SNAPSHOT
        
        
            io.springfox
            springfox-swagger2
            3.0.0-SNAPSHOT
            
                
                    io.swagger
                    swagger-annotations
                
                
                    io.swagger
                    swagger-models
                
            
        
        
            io.swagger
            swagger-annotations
            1.5.21
        
        
            io.swagger
            swagger-models
            1.5.21
        


	
        
            jcenter-snapshots
            jcenter
            http://oss.jfrog.org/artifactory/oss-snapshot-local/
            
                true
            
            
                true
            
        
    

其他的swagger 配置 同 2 没啥区别

注意

  • 如果你的项目配置了 server.servlet.context-path 这时你会发现 通过swagger 测试接口时,url上会有两层 context-path 导致接口访问失败

解决办法

@Value("${server.servlet.context-path}")
private String servletContextPath;
/**
     * 重写 PathProvider ,解决 context-path 重复问题
     * @return
     */
    @Bean
    public PathProvider pathProvider() {
        return new DefaultPathProvider() {
            @Override
            public String getOperationPath(String operationPath) {
                operationPath = operationPath.replaceFirst(servletContextPath, "/");
                UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromPath("/");
                return Paths.removeAdjacentForwardSlashes(uriComponentsBuilder.path(operationPath).build().toString());
            }

            @Override
            public String getResourceListingPath(String groupName, String apiDeclaration) {
                apiDeclaration = super.getResourceListingPath(groupName, apiDeclaration);
                return apiDeclaration;
            }
        };
    }

项目启动时会发现好多swagger API的日志 -解决办法

 @Bean
    @Primary
    public OperationNameGenerator operationNameGenerator() {
        return prefix -> prefix;
    }

你可能感兴趣的:(spring,boot,spring,cloud,swagger)