Swagger2的使用
// 这个是基于Springboot环境
<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>
Swagger2接口文档说明
定义swagger配置类 放到启动类能扫到的地方
package com.itheima.health.config;import com.itheima.health.ConsumerMain;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket createRestApi() {String basePck = WebApplicaiton.class.getPackage().getName();System.out.println(basePck+"=启动类所在的包为路径扫描=====定义生成接口文档的包路径=====");return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage(basePck)).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("传智播客_传智健康_接口文档").description("描述内容").version("2.1.1").build();}}
启动类
package com.itheima;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@SpringBootApplication
@EnableSwagger2 // 开启swagger配置
public class WebApplication {public static void main(String[] args) {SpringApplication.run(WebApplication.class,args);System.out.println("===health_web消费端启动---");}
}
Swagger常用注解说明
常用两个注解: 一个类 和 一个方法
@Api 和 @ApiOperation
示例: controller包下开发检查项所有列表查询
//第一种无参数的情况下
// 这个是无参的
@RestController
@Api(tags = "检查项模块管理")
public class CheckItemController {@Referenceprivate CheckItemService checkItemService;// 开发 检查项模块 crud@GetMapping("checkitem/findAll")@ApiOperation(value = "查询检查项方法",notes = "查询所有的检查项列表信息")public Result findAll(){List<CheckItem> list = checkItemService.list();return new Result(true, MessageConstant.QUERY_CHECKITEM_SUCCESS,list);}
}
//第二种有参数的情况下
@ApiOperation(value = "套餐查询",notes = "分页套餐查询")@ApiImplicitParams({@ApiImplicitParam(name="currentPage",value="当前分页页码",required=true,paramType="form",dataType="Integer"),@ApiImplicitParam(name="pageSize",value="每页显示记录数",required=true,paramType="form",dataType="Integer"),@ApiImplicitParam(name="queryString",value="查询条件",required=false,paramType="form",dataType="String")})@ApiResponses({@ApiResponse(code=400,message="请求参数没填好"),@ApiResponse(code=404,message="请求路径没有或页面跳转路径不对")})// 上述注解 添加在目标方法上! public Result findPage(@RequestBody QueryPageBean queryPageBean){PageResult pageResult = setmealService.findPage(queryPageBean);return new Result(pageResult);}
访问页面: 查询文档接口
去这个网页上能下载
http://localhost:8081/swagger-ui.html