国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot 整合 Swagger 教程詳解

這篇具有很好參考價值的文章主要介紹了Spring Boot 整合 Swagger 教程詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Spring Boot 整合 Swagger 教程詳解

?作者簡介:2022年博客新星 第八。熱愛國學(xué)的Java后端開發(fā)者,修心和技術(shù)同步精進。
??個人主頁:Java Fans的博客
??個人信條:不遷怒,不貳過。小知識,大智慧。
??當(dāng)前專欄:SpringBoot 框架從入門到精通
?特色專欄:國學(xué)周更-心性養(yǎng)成之路
??本文內(nèi)容:Spring Boot 整合 Swagger 教程詳解

Spring Boot 整合 Swagger 教程詳解

??Spring Boot 是一個基于 Spring 框架的輕量級開源框架,它的出現(xiàn)極大地簡化了 Spring 應(yīng)用的搭建和開發(fā)。在開發(fā)過程中,接口文檔是非常重要的一環(huán),它不僅方便開發(fā)者查看和理解接口的功能和參數(shù),還能幫助前后端開發(fā)協(xié)同工作,提高開發(fā)效率。本文將介紹如何在 Spring Boot 中使用 Swagger 來實現(xiàn)接口文檔的自動生成。

一、關(guān)于 Swagger

??Swagger 是一個 RESTful 接口文檔的規(guī)范和工具集,它的目標(biāo)是統(tǒng)一 RESTful 接口文檔的格式和規(guī)范。在開發(fā)過程中,接口文檔是非常重要的一環(huán),它不僅方便開發(fā)者查看和理解接口的功能和參數(shù),還能幫助前后端開發(fā)協(xié)同工作,提高開發(fā)效率。在 Spring Boot 中,我們可以通過集成 Swagger 來實現(xiàn)接口文檔的自動生成。Swagger 通過注解來描述接口,然后根據(jù)這些注解自動生成接口文檔。

二、Swagger 的安裝

1、下載 Swagger

??Swagger 的官方網(wǎng)站是 https://swagger.io/,我們可以在這里下載最新版本的 Swagger。

2、安裝 Swagger

??安裝 Swagger 非常簡單,只需要將下載的 Swagger 解壓到指定目錄即可。在解壓后的目錄中,我們可以找到 swagger-ui.html 頁面,這個頁面就是 Swagger 的 UI 界面。

三、Swagger 的使用

1、編寫接口

??在編寫接口時,我們需要使用 Swagger 的注解來描述接口信息。常用的注解包括:

  • @Api:用于描述接口的類或接口
  • @ApiOperation:用于描述接口的方法
  • @ApiParam:用于描述接口的參數(shù)
  • @ApiModel:用于描述數(shù)據(jù)模型
  • @ApiModelProperty:用于描述數(shù)據(jù)模型的屬性

??例如,我們編寫一個簡單的接口:

@RestController
@Api(tags = "用戶接口")
public class UserController {
 
    @GetMapping("/user/{id}")
    @ApiOperation(value = "根據(jù) ID 獲取用戶信息")
    public User getUserById(@ApiParam(value = "用戶 ID", required = true) @PathVariable Long id) {
        // 根據(jù) ID 查詢用戶信息
    }
}

??在上面的代碼中,@Api表示該類是一個用戶接口,@ApiOperation 表示該方法是獲取用戶信息的接口,@ApiParam 表示該參數(shù)是用戶 ID,@PathVariable 表示該參數(shù)是路徑參數(shù)。

2、啟用 Swagger

??在 Spring Boot 中,我們可以通過添加 Swagger 相關(guān)的依賴來啟用 Swagger。
我們可以在 pom.xml 文件中添加以下依賴:

<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>

??在 Spring Boot 中,我們還需要添加配置類來配置 Swagger。配置類的代碼如下:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
 
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }
 
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("接口文檔")
                .description("接口文檔")
                .version("1.0.0")
                .build();
    }
}

??在上面的代碼中,@Configuration 表示該類是一個配置類,@EnableSwagger2 表示啟用 Swagger。在 api() 方法中,我們通過 `select() 方法配置掃描的包路徑,paths() 方法配置接口的訪問路徑,apiInfo() 方法配置接口文檔的相關(guān)信息。

3、查看接口文檔

??啟動 Spring Boot 應(yīng)用后,我們可以在瀏覽器中訪問 http://localhost:8080/swagger-ui.html 來查看接口文檔。在 Swagger UI 頁面中,我們可以看到所有的接口信息,包括接口名稱、請求方式、請求路徑、請求參數(shù)、響應(yīng)參數(shù)等。

四、Swagger 的高級使用

1、描述數(shù)據(jù)模型

??我們可以使用 @ApiModel@ApiModelProperty 注解來描述數(shù)據(jù)模型和屬性。例如,我們可以編寫一個 User 類,并在類上使用 @ApiModel 和

@ApiModelProperty 注解來描述該數(shù)據(jù)模型:

@ApiModel(description = "用戶信息")
public class User {
 
    @ApiModelProperty(value = "用戶 ID", example ="1") 
    private Long id;

	@ApiModelProperty(value = "用戶名", example = "張三")
	private String username;

	@ApiModelProperty(value = "密碼", example = "123456")
	private String password;

	// 省略 getter 和 setter 方法
}

??在上面的代碼中,@ApiModel 表示該類是一個數(shù)據(jù)模型,@ApiModelProperty 表示該屬性是數(shù)據(jù)模型的一個屬性,value 屬性表示屬性的描述,example 屬性表示屬性的示例值。

2、描述枚舉類型

??我們可以使用 @ApiModel@ApiModelProperty 注解來描述枚舉類型。例如,我們可以編寫一個 Gender 枚舉類型,并在枚舉值上使用 @ApiModelProperty 注解來描述該枚舉值:

@ApiModel(description = "性別") public enum Gender {

@ApiModelProperty(value = "男")
MALE,

@ApiModelProperty(value = "女")
FEMALE;
}

??在上面的代碼中,@ApiModel 表示該枚舉類型是一個描述性別的枚舉類型,@ApiModelProperty 表示該枚舉值是描述男性的枚舉值或描述女性的枚舉值。

3、描述響應(yīng)參數(shù)

??我們可以使用 @ApiResponses@ApiResponse 注解來描述接口的響應(yīng)參數(shù)。例如,我們可以編寫一個 getUserById() 方法,并在方法上使用 @ApiResponses 和 @ApiResponse 注解來描述該方法的響應(yīng)參數(shù):

@GetMapping("/user/{id}")
@ApiOperation(value = "根據(jù) ID 獲取用戶信息") 
@ApiResponses({ @ApiResponse(code = 200, message = "請求成功", response = User.class), 
@ApiResponse(code = 404, message = "用戶不存在") }) 
public User getUserById(@ApiParam(value = "用戶 ID", required = true) @PathVariable Long id) 
{ 
	// 根據(jù) ID 查詢用戶信息 
}

??在上面的代碼中,@ApiResponses 表示該方法的響應(yīng)參數(shù),@ApiResponse 表示該響應(yīng)參數(shù)的描述,code 屬性表示響應(yīng)碼,message 屬性表示響應(yīng)消息,response 屬性表示響應(yīng)的數(shù)據(jù)模型。

五、Swagger 的進階使用

1、配置全局參數(shù)

??我們可以在配置類中使用 globalOperationParameters() 方法來配置全局參數(shù)。例如,我們可以配置一個全局的 Authorization 參數(shù),用于授權(quán):

@Configuration
@EnableSwagger2
public class SwaggerConfig {
 
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(Arrays.asList(
                        new ParameterBuilder()
                                .name("Authorization")
                                .description("授權(quán)")
                                .modelRef(new ModelRef("string"))
                                .parameterType("header")
                                .required(false)
                                .build()
                ))
                .apiInfo(apiInfo());
    }
 
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("接口文檔")
                .description("接口文檔")
                .version("1.0.0")
                .build();
    }
 
}

??在上面的代碼中,我們通過 globalOperationParameters() 方法來配置一個全局的 Authorization 參數(shù),用于授權(quán)。

2、配置安全協(xié)議

??我們可以在配置類中使用 securitySchemes() 方法來配置安全協(xié)議。例如,我們可以配置一個 Bearer Token 安全協(xié)議:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
 
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build()
                .securitySchemes(Arrays.asList(
                        new ApiKey("Bearer", "Authorization", "header")
                ))
                .apiInfo(apiInfo());
    }
 
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("接口文檔")
                .description("接口文檔")
                .version("1.0.0")
                .build();
    }
 
}

??在上面的代碼中,我們通過 securitySchemes() 方法來配置一個 Bearer Token 安全協(xié)議。

3、配置安全上下文

??我們可以在配置類中使用 securityContexts() 方法來配置安全上下文。例如,我們可以配置一個安全上下文,用于在 Swagger UI 中顯示認證按鈕:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
 
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build()
                .securitySchemes(Arrays.asList(
                        new ApiKey("Bearer", "Authorization", "header")
                ))
                .securityContexts(Collections.singletonList(
                        SecurityContext.builder()
                                .securityReferences(Collections.singletonList(
                                        new SecurityReference("Bearer", new AuthorizationScope[0])
                                ))
                                .build()
                ))
                .apiInfo(apiInfo());
    }
 
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("接口文檔")
                .description("接口文檔")
                .version("1.0.0")
                .build();
    }
 
}

??在上面的代碼中,我們通過 securityContexts() 方法來配置一個安全上下文,用于在 Swagger UI 中顯示認證按鈕。

4、配置忽略參數(shù)

??在接口中,有些參數(shù)可能是敏感信息,我們不希望在接口文檔中顯示。我們可以使用 @ApiIgnore 注解來忽略這些參數(shù)。例如,我們可以在 User 類中使用 @ApiIgnore 注解來忽略密碼參數(shù):

@ApiModel(description = "用戶信息")
public class User {
 
    @ApiModelProperty(value = "用戶 ID", example = "1")
    private Long id;
 
    @ApiModelProperty(value = "用戶名", example = "張三")
    private String username;
 
    @ApiModelProperty(hidden = true)
    @ApiIgnore
    private String password;
 
    // 省略 getter 和 setter 方法
}

??在上面的代碼中,@ApiModelProperty(hidden = true) 表示該參數(shù)是隱藏的,@ApiIgnore 表示忽略該參數(shù)。

六、總結(jié)

??通過集成 Swagger,我們可以方便地生成接口文檔,使得前后端開發(fā)協(xié)同更加高效。在使用 Swagger 時,我們需要注意以下幾點:

  • 使用注解來描述接口信息,包括接口名稱、請求方式、請求路徑、請求參數(shù)、響應(yīng)參數(shù)等;
  • 在配置類中配置 Swagger,包括掃描的包路徑、接口文檔信息、全局參數(shù)、安全協(xié)議、安全上下文等;
  • 描述數(shù)據(jù)模型、枚舉類型、響應(yīng)參數(shù)等信息,方便開發(fā)者查看和理解接口的功能和參數(shù);
  • 在需要時使用 @ApiIgnore 注解來忽略敏感參數(shù)的顯示。
  • 最后,需要注意的是,Swagger 只是一種規(guī)范和工具集,它并不能取代單元測試和集成測試等其他測試方式。在開發(fā)過程中,我們需要綜合使用各種測試方式,保證軟件的質(zhì)量和穩(wěn)定性。

??碼文不易,本篇文章就介紹到這里,如果想要學(xué)習(xí)更多Java系列知識點擊關(guān)注博主,博主帶你零基礎(chǔ)學(xué)習(xí)Java知識。與此同時,對于日常生活有困擾的朋友,歡迎閱讀我的第四欄目:《國學(xué)周更—心性養(yǎng)成之路》,學(xué)習(xí)技術(shù)的同時,我們也注重了心性的養(yǎng)成。

Spring Boot 整合 Swagger 教程詳解文章來源地址http://www.zghlxwxcb.cn/news/detail-413409.html

到了這里,關(guān)于Spring Boot 整合 Swagger 教程詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • spring boot 2.7.9 整合 Swagger 3.0

    spring boot 2.7.9 整合 Swagger 3.0

    ?jdk? 1.8 springboot 2.7.9 swagger 3.0.0 描述:Failed to start bean \\\'documentationPluginsBootstrapper\\\'; nested exception is java.lang.NullPointerException 沒有這個bean,空指針了。 據(jù)網(wǎng)上資料找,3.0的Swagger已經(jīng)不繼承WebMvcConfig這個類,是繼承了WebMvcConfigSupport類,從而改動了配置路徑規(guī)則,然后報空指針,

    2024年02月06日
    瀏覽(38)
  • 【Spring Boot】SpringBoot 優(yōu)雅整合Swagger Api 自動生成文檔

    【Spring Boot】SpringBoot 優(yōu)雅整合Swagger Api 自動生成文檔

    Swagger 是一套 RESTful API 文檔生成工具,可以方便地生成 API 文檔并提供 API 調(diào)試頁面。 而 Spring Boot 是一款非常優(yōu)秀的 Java Web 開發(fā)框架,它可以非常方便地構(gòu)建 Web 應(yīng)用程序。 在本文中,我們將介紹如何使用 Swagger 以及如何在 Spring Boot 中整合 Swagger 。 首先,在 pom.xml 文件中添

    2023年04月22日
    瀏覽(25)
  • Spring Boot3整合knife4j(swagger3)

    Spring Boot3整合knife4j(swagger3)

    目錄 1.前置條件 2.導(dǎo)依賴 3.配置 已經(jīng)初始化好一個spring boot項目且版本為3X,項目可正常啟動。 作者版本為3.2.2 初始化教程: 新版idea創(chuàng)建spring boot項目-CSDN博客 https://blog.csdn.net/qq_62262918/article/details/135785412?spm=1001.2014.3001.5501 knife4j官網(wǎng): Knife4j · 集Swagger2及OpenAPI3為一體的增強

    2024年01月23日
    瀏覽(30)
  • Spring Boot 2.6 以上整合 Swagger + Knife4j 報錯

    Spring Boot 2.6 以上整合 Swagger + Knife4j 報錯

    這個問題主要出現(xiàn)在 Spring Boot 2.6 及以后,只要是 Spring Boot 2.6 引入的新 PathPatternParser 導(dǎo)致的。 兩種解決辦法 Path匹配策略切換回 ??ant_path_matcher ? 添加下面這個Bean的定義

    2024年01月17日
    瀏覽(38)
  • Spring Boot入門(16):Spring Boot 整合 Swagger-UI 實現(xiàn)在線API接口文檔 | 超級詳細,建議收藏

    Spring Boot入門(16):Spring Boot 整合 Swagger-UI 實現(xiàn)在線API接口文檔 | 超級詳細,建議收藏

    ????????在現(xiàn)代化的軟件開發(fā)中,API接口文檔的編寫和管理是非常重要的一環(huán)。而Swagger-UI作為一款優(yōu)秀的API文檔生成工具,可以幫助開發(fā)者輕松地生成并管理API接口文檔,提高開發(fā)效率和代碼質(zhì)量。在本文中,我們將介紹如何使用Spring Boot框架和Swagger-UI工具實現(xiàn)在線API接

    2024年02月16日
    瀏覽(26)
  • Spring Boot 3項目集成Swagger3教程

    歡迎來到我的小天地,這里是我記錄技術(shù)點滴、分享學(xué)習(xí)心得的地方。?? ??? 技能清單 編程語言 :Java、C、C++、Python、Go、 前端技術(shù) :Jquery、Vue.js、React、uni-app、Echarts UI設(shè)計 : Element-ui、Antd、Color-ui 后端技術(shù) :Spring Boot、Mybatis-plus、Swagger 移動開發(fā) :Android 操作系統(tǒng) :

    2024年04月17日
    瀏覽(22)
  • 【Spring Boot整合MyBatis教程】

    Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成

    2024年02月15日
    瀏覽(21)
  • Spring boot整合sse(使用詳解)

    Spring boot整合sse(使用詳解)

    SSE是一種 基于HTTP長連接技術(shù),允許服務(wù)器向客戶端瀏覽器實時推送更新。 客戶端通過創(chuàng)建一個EventSource對象并指向服務(wù)器上的一個URL來發(fā)起請求,這個請求保持打開狀態(tài),服務(wù)器可以在這個單一的TCP連接上不斷發(fā)送新的數(shù)據(jù)塊。這些數(shù)據(jù)塊被稱為“事件”,每個事件包含類

    2024年04月12日
    瀏覽(48)
  • Spring Boot OAuth2 整合詳解

    目錄 一、Spring Boot 2.x 示例 1、初始化設(shè)置 2、設(shè)置重定向URI 3、配置 application.yml 4、啟動應(yīng)用程序 二、Spring Boot 2.x 屬性映射 二、CommonOAuth2Provider 三、配置自定義提供者(Provider)屬性 四、覆蓋 Spring Boot 2.x 的自動配置 五、注冊一個 ClientRegistrationRepository @Bean 六、注冊一個

    2024年02月07日
    瀏覽(32)
  • Spring Boot整合Elasticsearch超詳細教程

    SpringBoot整合Elasticsearch超詳細教程 最新高級版 (1)導(dǎo)入springboot整合ES高級別客戶端的坐標(biāo) (2)使用編程的形式設(shè)置連接的ES服務(wù)器,并獲取客戶端對象 (3)Book實體類 (4)連接Dao層 (5)使用客戶端對象操作ES 例如創(chuàng)建索引:(這里需要先執(zhí)行上面的刪除索引操作,否則會報錯)

    2023年04月09日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包