亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBootWeb?入門了解?Swagger?的具體使用

 更新時間:2024年08月07日 12:24:07   作者:小扳  
這篇文章主要介紹了SpringBootWeb?入門了解?Swagger?的具體使用,Swagger?框架可以根據(jù)已經(jīng)實現(xiàn)的方法或者類,通過頁面的方式直觀清晰的查看或者進行測試該方法,需要的朋友可以參考下

1.0 Swagger 介紹

使用 Swagger 你只需要按照它的規(guī)范去定義接口及接口相關(guān)的信息,就可以做到生成接口文檔,以及在線接口調(diào)試頁面。

knife4j 是為 Java MVC 框架集成 Swagger 生成 Api 文檔的增強解決方案。Swagger 允許定義 API 的各種方面,包括輸入?yún)?shù)、請求和響應(yīng)的數(shù)據(jù)格式、接口路徑等內(nèi)容。同時, Swagger 提供了一個交互式的 Swagger UI ,可以直觀地查看和測試 API 。

簡單來說,就是 Swagger 框架可以根據(jù)已經(jīng)實現(xiàn)的方法或者類,通過頁面的方式直觀清晰的查看或者進行測試該方法。

1.1 Swagger 和 Yapi 的使用場景

1)Yapi 是設(shè)計階段使用的工具,管理和維護接口。

2)Swagger 在開發(fā)階段使用的框架,幫助后端開發(fā)人員的接口測試。

2.0 Swagger 的使用方式

首先通過導(dǎo)入 knife4j 的 maven 坐標,再在配置類中加入 knife4j 相關(guān)配置,最后設(shè)置靜態(tài)資源映射。

2.1 導(dǎo)入 knife4j 的 maven 坐標

            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-spring-boot-starter</artifactId>
                <version>3.0.2</version>
            </dependency>

2.2 在配置類中加入 knife4j 相關(guān)配置

首先創(chuàng)建一個配置類,在普通類上加上 @Configuration 注解,且該類需要繼承WebMvcConfigurationSupport 類。

再定義一個返回 Docket 的 docket 方法,且該方法需要加上 @Bean 注解,使其交給 IOC 容器管理,成為 Bean 對象。

在該 docket 方法中先創(chuàng)建一個 ApiInfo 對象,通過 apiInfo 的一些方法來設(shè)置屬性,再創(chuàng)建一個 Docket 對象,通過 docket 的一些方法來設(shè)置屬性,再將設(shè)置好的 docket 對象返回。

代碼如下:

    @Bean
    public Docket docket() {
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("項目接口文檔")
                .version("2.0")
                .description("項目接口文檔")
                .build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.basePackage("需要掃描的項目名"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }

其中設(shè)置apis(RequestHandlerSelectors.basePackage("需要掃描的項目名")) 該屬性是很重要的,項目中要測試的方法或者類在具體包的包名。這樣就會自動掃描該包及其子包的方法或者類。

2.3 設(shè)置靜態(tài)資源映射,否則接口文檔頁面無法訪問

重寫配置類中的 addResourceHandlers 方法,通過該資源路徑"/doc.html" 來訪問該頁面。

    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

2.4 完整Swagger的配置代碼

 
/**
 * 配置類,注冊web層相關(guān)組件
 */
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
    /**
     * 通過knife4j生成接口文檔
     * @return
     */
    @Bean
    public Docket docket() {
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("項目接口文檔")
                .version("2.0")
                .description("項目接口文檔")
                .build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.basePackage("需要測試方法所在項目的包名"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
    /**
     * 設(shè)置靜態(tài)資源映射
     * @param registry
     */
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

具體的頁面效果:

通過訪問 "/doc.html" 的資源路徑,就可以訪問到該頁面,通過該頁面就可以非常方便測試這些方法了。

補充:

若要使用 .built 來創(chuàng)建對象,你需要導(dǎo)入 Lombok 這個庫的 Maven 坐標。在 Maven 項目中,你可以在 pom.xml 文件中添加以下依賴項:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
</dependency>

實際上,使用.builder創(chuàng)建對象是針對 Lombok 中的@Builder注解的功能。要使用 Lombok 的@Builder注解創(chuàng)建對象,你需要在你的Java類中添加@Builder注解,而不是導(dǎo)入特定的 Lombok 庫的 Maven 坐標。

3.0 Swagger 常見的注解

通過注解可以控制生成的接口文檔,使用接口文檔擁有更好的可讀性。簡單來說,通過這些注解就可以對類、方法、方法中的屬性進行說明,在測試方法的過程中,可以很清晰的明白該方法或者類的用途、信息。

常用注解如下:

1)@Api("tags=對類的描述"):用在類上,比如 Controller ,表示對類的說明。

代碼如下:

效果如下:

2)@ApiModel(description="對實體類進行描述"):用在實體類上,比如 entity、DTO、VO 。

代碼如下:

@Data
@ApiModel(description = "員工登錄時傳遞的數(shù)據(jù)模型")
public class EmployeeLoginDTO implements Serializable {
    @ApiModelProperty("用戶名")
    private String username;
    @ApiModelProperty("密碼")
    private String password;
}

效果如下:

3)@ApiModelProperty("對屬性進行描述"):用在屬性上,描述屬性信息。

代碼如下:

@Data
@ApiModel(description = "員工登錄時傳遞的數(shù)據(jù)模型")
public class EmployeeLoginDTO implements Serializable {
    @ApiModelProperty("用戶名")
    private String username;
    @ApiModelProperty("密碼")
    private String password;
}

效果如下:

4)@ApiOperation("對方法進行描述"):用在方法上,例如 Controller 的方法,說明方法的用途、作用。

代碼如下:

    @PostMapping
    @ApiOperation("新增員工")
    public Result<String> save(@RequestBody EmployeeDTO employeeDTO){
        log.info("新增員工");
        employeeService.save(employeeDTO);
        return Result.success();
    }

效果如下:

到此這篇關(guān)于SpringBootWeb 入門了解 Swagger 的具體使用的文章就介紹到這了,更多相關(guān)SpringBootWeb Swagger使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • idea.vmoptions 最佳配置方案

    idea.vmoptions 最佳配置方案

    本文介紹了針對IntelliJ IDEA的優(yōu)化配置建議,包括提升內(nèi)存設(shè)置、啟用G1垃圾回收器、優(yōu)化垃圾回收策略以及調(diào)整網(wǎng)絡(luò)設(shè)置等,旨在提高IDE的性能和響應(yīng)速度,同時,指導(dǎo)用戶如何修改vmoptions文件以應(yīng)用這些配置,并提供了監(jiān)控內(nèi)存使用和插件管理的建議
    2024-09-09
  • java實現(xiàn)數(shù)據(jù)庫主鍵生成示例

    java實現(xiàn)數(shù)據(jù)庫主鍵生成示例

    這篇文章主要介紹了java實現(xiàn)數(shù)據(jù)庫主鍵生成示例,需要的朋友可以參考下
    2014-03-03
  • Java如何使用interrupt()終止線程

    Java如何使用interrupt()終止線程

    這篇文章主要介紹了Java如何使用interrupt()終止線程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 使用log4j2關(guān)閉debug日志

    使用log4j2關(guān)閉debug日志

    這篇文章主要介紹了使用log4j2關(guān)閉debug日志方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java打印國際象棋棋盤的方法

    java打印國際象棋棋盤的方法

    這篇文章主要為大家詳細介紹了java打印出國際象棋棋盤的相關(guān)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • SpringCloud OpenFeign使用詳解

    SpringCloud OpenFeign使用詳解

    在springcloud微服務(wù)生態(tài)體系下,作為服務(wù)之間相互調(diào)用的重要組件openfeign,在其中承擔著非常重要的作用,本篇以springcloud中提供的遠程接口調(diào)用組件openfeign為例,來聊聊openfeign的詳細使用,感興趣的同學可以參考閱讀
    2023-05-05
  • Java中為什么不同的返回類型不算方法重載

    Java中為什么不同的返回類型不算方法重載

    這篇文章主要介紹了Java中為什么不同的返回類型不算方法重載,方法重載是指在同一個類中,定義了多個同名方法,但每個方法的參數(shù)類型或者是參數(shù)個數(shù)不同就是方法重載,下文詳細介紹,需要的小伙伴可以參考一下
    2022-05-05
  • SpringBoot集成Swagger2構(gòu)建在線API文檔的代碼詳解

    SpringBoot集成Swagger2構(gòu)建在線API文檔的代碼詳解

    這篇文章主要介紹了SpringBoot集成Swagger2構(gòu)建在線API文檔,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Vue.Js及Java實現(xiàn)文件分片上傳代碼實例

    Vue.Js及Java實現(xiàn)文件分片上傳代碼實例

    這篇文章主要介紹了Vue.Js及Java實現(xiàn)文件分片上傳代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • SpringMVC處理器映射器HandlerMapping詳解

    SpringMVC處理器映射器HandlerMapping詳解

    這篇文章主要介紹了SpringMVC處理器映射器HandlerMapping詳解,在SpringMVC中會有很多請求,每個請求都需要一個HandlerAdapter處理,具體接收到一個請求之后使用哪個HandlerAdapter進行處理呢,他們的過程是什么,需要的朋友可以參考下
    2023-09-09

最新評論