中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot框架如何整合SwaggerUI

發布時間:2022-02-24 13:38:00 來源:億速云 閱讀:155 作者:iii 欄目:開發技術

這篇文章主要介紹了SpringBoot框架如何整合SwaggerUI的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇SpringBoot框架如何整合SwaggerUI文章都會有所收獲,下面我們一起來看看吧。

整合swagger進行模塊測試

注意事項:為方便SpringBoot更好的整合Swagger,需要專門放置在一個模塊中(maven子工程)

創建公共模塊,整合swagger,為了所有模塊進行使用

common/pom.xml,導入相關的依賴

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <scope>provided </scope>
    </dependency>

    <!--mybatis-plus-->
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
    <!--lombok用來簡化實體類:需要安裝lombok插件-->
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    <!--swagger-->
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <artifactId>springfox-swagger-ui</artifactId>
    <!-- redis -->
        <artifactId>spring-boot-starter-data-redis</artifactId>
    <!-- spring2.X集成redis所需common-pool2
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
        <version>2.6.0</version>
    </dependency>-->
</dependencies>

在公共模塊下在創建一個模塊,如service_base

在該模塊下創建配置類(需要遵循SpringBoot規范,該代碼固定)

package com.xsha.servicebase;

import com.google.common.base.Predicates;
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.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 SwaggerConfig {
    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();
    }
    private ApiInfo webApiInfo(){
        return new ApiInfoBuilder()
                .title("網站標題")
                .description("接口文檔的描述信息")
                .version("1.0")
                .contact(new Contact("java", "http://www.baidu.com", "1234567890@qq.com"))
}

使用方式

在其他模塊(最好是最外層的)的pom.xml引入上面的模塊即可

<dependency>
    <groupId>com.xsha</groupId>
    <artifactId>service_base</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

在該模塊的啟動類上添加ComponentScan注解,指定需要掃描的包。例如:@ComponentScan(basePackages={"com.xsha"})

然后啟動,訪問地址:http://127.0.0.1:8001/swagger-ui.html

統一返回結果的格式(自定義結果)

在公共模塊下在創建一個模塊,如common-utils

創建一個專門管理狀態碼的接口

public interface ResultCode {
    //定義兩個狀態碼
    public static int SUCCESS = 20000;
    public static int ERROR = 40000;
}

定義返回格式(較為固定)

package com.xsha.commonutils;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
// 統一返回結果類
@Data
public class R {
    @ApiModelProperty(value = "是否成功")
    private Boolean success;
    @ApiModelProperty(value = "返回碼")
    private Integer code;
    @ApiModelProperty(value = "返回消息")
    private String message;
    @ApiModelProperty(value = "返回數據")
    private Map<String, Object> data = new HashMap<String, Object>();
    // 把構造方法定為私有
    private R() {}
    // 成功靜態方法
    public static R ok() {
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return r;
    }
    // 失敗靜態方法
    public static R error() {
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失敗");
    public R success(Boolean success){
        this.setSuccess(success);
        return this;
    public R message(String message){
        this.setMessage(message);
    public R code(Integer code){
        this.setCode(code);
    public R data(String key, Object value){
        this.data.put(key, value);
    public R data(Map<String, Object> map){
        this.setData(map);
}

使用方式

在其他模塊(最好是最外層的)的pom.xml引入上面的模塊即可

<dependency>
    <groupId>com.xsha</groupId>
    <artifactId>common_utils</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

每次返回的結果的類型必須是自定義的“返回格式”類類型

// please use rest style
// 1.select all teachers data
@ApiOperation(value = "所有數據列表")
@GetMapping("findAll")
public R findAllTeachers() {
    List<EduTeacher> teachers = teacherService.list(null);
    return R.ok().data("results", teachers);
}
// request path mast have variable id
// 2.logically delete teacher
@ApiOperation(value = "邏輯刪除數據")
@DeleteMapping("{id}")
public R logicDeleteTeacher(@ApiParam(name="id", value="講師ID", required = true) @PathVariable String id) {
    boolean flag = teacherService.removeById(id);
    return flag? R.ok(): R.error();
}

最后在swagger中測試即可

關于“SpringBoot框架如何整合SwaggerUI”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“SpringBoot框架如何整合SwaggerUI”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辽宁省| 黔西县| 洛川县| 吉隆县| 保康县| 兴城市| 永宁县| 华宁县| 扬州市| 湖南省| 临夏县| 宕昌县| 马山县| 建水县| 天全县| 文登市| 万盛区| 郸城县| 同心县| 江安县| 区。| 治县。| 拜泉县| 香港| 田东县| 宁德市| 贡嘎县| 海城市| 大余县| 边坝县| 呼图壁县| 上饶市| 永川市| 雷波县| 昂仁县| 蒙自县| 潼关县| 元谋县| 开封县| 内黄县| 安庆市|