spring boot (2) 配置swagger2核心配置 docket
演示:
官方自带的皮肤:
换肤 :
隐藏api 接口:
使用 @ApiIgnore
例如:
package com.imooc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@ApiIgnore
//@Controller
@RestController
public class Hello {
@GetMapping("/hello111")
public Object hello() {
return "hello world1";
}
}
演示;
这里我们可以看到hello 接口被隐藏
看完效果演示 ,现在我们开始配置swagger2;
在项目的pom.ml 添加依赖:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.6</version> </dependency>
编写配置代码:
package com.imooc.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.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class Swagger2 { // http://localhost:8088/swagger-ui.html 原路径 // http://localhost:8088/doc.html 原路径 // 配置swagger2核心配置 docket @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) // 指定api类型为swagger2 .apiInfo(apiInfo()) // 用于定义api文档汇总信息 .select() .apis(RequestHandlerSelectors .basePackage("com.imooc.controller")) // 指定controller包 .paths(PathSelectors.any()) // 所有controller .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("电商平台接口api") // 文档页标题 .contact(new Contact("zxw", "https://www.zxw.com", "abc@imooc.com")) // 联系人信息 .description("专为天天吃货提供的api文档") // 详细信息 .version("1.0.1") // 文档版本号 .termsOfServiceUrl("https://www.zxw.com") // 网站地址 .build(); } }
EnableSwagger2 : 开启在线文档
声明api 文档的属性 构建器 :
private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("电商平台接口api") // 文档页标题 .contact(new Contact("zxw", "https://www.zxw.com", "abc@imooc.com")) // 联系人信息 .description("专为天天吃货提供的api文档") // 详细信息 .version("1.0.1") // 文档版本号 .termsOfServiceUrl("https://www.zxw.com") // 网站地址 .build(); }
Controller 使用示例:
package com.imooc.controller; import com.imooc.pojo.Users; import com.imooc.pojo.bo.UserBO; import com.imooc.service.StuService; import com.imooc.service.UserService; import com.imooc.utils.CookieUtils; import com.imooc.utils.IMOOCJSONResult; import com.imooc.utils.JsonUtils; import com.imooc.utils.MD5Utils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Api(value = "注册登录", tags = {"用于注册登录的相关接口"}) @RestController @RequestMapping("passport") public class PassportController { @Autowired private UserService userService; @ApiOperation(value = "用户注册", notes = "用户注册", httpMethod = "POST") @PostMapping("/regist") public IMOOCJSONResult regist(@RequestBody UserBO userBO, HttpServletRequest request, HttpServletResponse response) { String username = userBO.getUsername(); String password = userBO.getPassword(); String confirmPwd = userBO.getConfirmPassword(); // 0. 判断用户名和密码必须不为空 if (StringUtils.isBlank(username) || StringUtils.isBlank(password) || StringUtils.isBlank(confirmPwd)) { return IMOOCJSONResult.errorMsg("用户名或密码不能为空"); } // 1. 查询用户名是否存在 boolean isExist = userService.queryUsernameIsExist(username); if (isExist) { return IMOOCJSONResult.errorMsg("用户名已经存在"); } // 2. 密码长度不能少于6位 if (password.length() < 6) { return IMOOCJSONResult.errorMsg("密码长度不能少于6"); } // 3. 判断两次密码是否一致 if (!password.equals(confirmPwd)) { return IMOOCJSONResult.errorMsg("两次密码输入不一致"); } // 4. 实现注册 Users userResult = userService.createUser(userBO); return IMOOCJSONResult.ok(); } }
越努力越幸运