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();
    }
}



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM