Swagger作用:
自动生成javaAPI,避免开发过程中接口文档更新不及时。
第一步:导入依赖
<!-- swagger --> <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>
第二步:写配置类
package com.rookiediary.practice.test.config; 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; /** * Swagger2Config * * @since 2020/06/15 * @author rookiediary */ @Configuration @EnableSwagger2 public class Swagger2Config { /** * 用于配置swagger2,包含文档基本信息 * 指定swagger2的作用域(这里指定包路径下的所有API) * @return Docket */ @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //指定需要扫描的controller .apis(RequestHandlerSelectors.basePackage("com.rookiediary.practice.test.controller")) .paths(PathSelectors.any()) .build(); } /** * 构建文档基本信息,用于页面显示,可以包含版本、 * 联系人信息、服务地址、文档描述信息等 * * @return ApiInfo */ private ApiInfo apiInfo() { return new ApiInfoBuilder() //标题 .title("菜鸟单飞日记 APIs") .version("1.0") .build(); } }
第三步:controller运用
package com.rookiediary.practice.test.controller; import com.rookiediary.practice.test.common.response.ResponseMsg; import com.rookiediary.practice.test.service.AreaSService; import com.rookiediary.practice.test.vo.areaS.AreaIdVo; import com.rookiediary.practice.test.vo.base.IdNameVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * <p> * 区域 前端控制器 * </p> * * @author rookiediary * @since 2020-06-15 */ @Api(value = "areaS api", tags = "地区相关接口") @AllArgsConstructor @RestController @RequestMapping("/areaS") public class AreaSController { @Autowired private AreaSService areaSService; @PostMapping("/getAreaSByParentCode") @ApiOperation(value = "根据区域编码获取下级区域", notes = "根据区域编码获取下级区域") public ResponseMsg<List<IdNameVO>> getAreaSByParentCode(@RequestBody @Validated AreaIdVo request){ return ResponseMsg.buildSuccessInstance(areaSService.getAreaSByParentCode(request)); } }