1.swagger解决了什么问题 随着微服务的流程,公司的微服务产生大量的接口调用,接口调用必定要写接口文档。 swagger采用了自动化解决人力编写接口文档的问题。
2.在pom.xml文件加入依赖包
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>3.修改配置文件 在application.properties中
spring.swagger2.enabled = true4.增加一个swagger配置类
@EnableSwagger2 public class SwaggerConfig { @Value(value = "${spring.swagger2.enabled}") private Boolean swaggerEnabled; @Bean public Docket createRestApi(){ return new Docket((DocumentationType.SWAGGER_2)) .apiInfo(apiInfo()) .enable(swaggerEnabled) .select() .apis(RequestHandlerSelectors.basePackage("com.boot.swagger")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("接口文档") .description("讲解 Spring Boot") .version("1.0") .build(); } }createRestApi() 这个方法一定要写上包名,代表需要生产的接口文档的目录包。
5.配置controller层调用接口
@Configuration @EnableSwagger2 public class SwaggerConfig { @Value(value = "${spring.swagger2.enabled}") private Boolean swaggerEnabled; @Bean public Docket createRestApi(){ return new Docket((DocumentationType.SWAGGER_2)) .apiInfo(apiInfo()) .enable(swaggerEnabled) .select() .apis(RequestHandlerSelectors.basePackage("com.boot.swagger")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("接口文档") .description("讲解 Spring Boot") .termsOfServiceUrl("www.baidu.com") .version("1.0") .build(); } }访问 http://127.0.0.1:8080/swagger-ui.html#/
常用注解:
@Api()用于类; 表示标识这个类是swagger的资源@ApiOperation()用于方法; 表示一个http请求的操作@ApiParam()用于方法,参数,字段说明; 表示对参数的添加元数据(说明或是否必填等)@ApiModel()用于类 表示对类进行说明,用于参数用实体类接收@ApiModelProperty()用于方法,字段 表示对model属性的说明或者数据操作更改@ApiIgnore()用于类,方法,方法参数 表示这个方法或者类被忽略@ApiImplicitParam() 用于方法 表示单独的请求参数@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam