SpringCloud(8)zuul与Swagger的整合

Swagger

它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。

在zuul工程中配置Swagger

  1. 在pom.xml文件中加入以下依赖

    
        io.springfox
        springfox-swagger2
        2.6.1
    
    
        io.springfox
        springfox-swagger-ui
        2.6.1
    
    
  2. Swagger的配置

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    @Bean
    UiConfiguration uiConfiguration(){
        return new UiConfiguration(null, "list", "alpha", "schema",
            UiConfiguration.Constants.DEFAULT_SUBMIT_METHODS, true, true, 60000L);
    }
     @Bean
     Docket createRestApi(){
            return new Docket(DocumentationType.SWAGGER_2).apiInfo(
                new ApiInfoBuilder()
                        .title("分布式Api管理").description("分布式文档管理")
                .termsOfServiceUrl("http://localhost:86")
            .version("1.0").build()
            );
         }
    }
    
  3. 加入列表

    @Component
    @Primary
    public class SwaggerResoureConfig implements SwaggerResourcesProvider {
    @Override
    public List get() {
        List swaggerResoures=new ArrayList<>();
        swaggerResoures.add(getSwaggerResoure("a","/api-a/v2/api-docs","2.0"));
        swaggerResoures.add(getSwaggerResoure("b","/api-b/v2/api-docs","2.0"));
        return swaggerResoures;
    }
    
    private  SwaggerResource getSwaggerResoure(String name,String loc,String version){
            SwaggerResource swaggerResource=new SwaggerResource();
            swaggerResource.setName(name);
            swaggerResource.setLocation(loc);
            swaggerResource.setSwaggerVersion(version);
            return swaggerResource;
        }
    }   
    
  4. 在你需要生成restful API文档下 也是上面一样的配置,但是少了第三步配置

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
        @Bean
        Docket createRestApi(){
            return new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder()
                    .title("a").version("1.0").contact(new Contact("tc","","[email protected]"))
                    .description("a系统的接口文档").build()).select()
                    .apis(RequestHandlerSelectors.basePackage("com.tc.eurekahelloconsume.controller"))
                    .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                    .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                    .build();
        }
        @Bean
        UiConfiguration uiConfig() {
            return new UiConfiguration(null, "list", "alpha", "schema",
                    UiConfiguration.Constants.DEFAULT_SUBMIT_METHODS, true, true, 60000L);
        }
    }
    

你可能感兴趣的:(SpringCloud)