Swagger
它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。
在zuul工程中配置Swagger
在pom.xml文件中加入以下依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency>
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() ); } }
加入列表
@Component @Primary public class SwaggerResoureConfig implements SwaggerResourcesProvider { @Override public List<SwaggerResource> get() { List<SwaggerResource> 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; } }
在你需要生成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","","1219754780@qq.com")) .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); } }