演示:
官方自帶的皮膚:
換膚 :
隱藏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(); } }