最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot Knife4j在線API文檔框架基本使用

 更新時(shí)間:2022年12月08日 16:02:41   作者:居然天上樓  
knife4j是為Java MVC框架集成Swagger生成Api文檔的增強(qiáng)解決方案,這篇文章主要介紹了SpringBoot中使用Knife4J在線API文檔框架,需要的朋友可以參考下

1.Knife4j在線API文檔基本使用

Knife4j是一款基于Swagger 2的在線API文檔框架。

使用Knife4j的基礎(chǔ)步驟:

  • 添加依賴
  • application.properties/application.yml中添加配置
  • 在項(xiàng)目中添加配置類

關(guān)于依賴項(xiàng):

<!-- Knife4j Spring Boot:在線API -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.9</version>
</dependency>

注意:以上依賴項(xiàng)的版本是2.0.9,適用于Spring Boot 2.6以下(不含2.6)版本。

關(guān)于配置文件中的配置,主要是開(kāi)啟此框架的增強(qiáng)模式(Knife4j定義的概念),需要添加:

knife4j.enable=true

關(guān)于配置類:

import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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.EnableSwagger2WebMvc;
/**
 * Knife4j配置類
 *
 * @author java@tedu.cn
 * @version 0.0.1
 */
@Slf4j
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {
    /**
     * 【重要】指定Controller包路徑
     */
    private String basePackage = "cn.tedu.csmall.product.controller";
    /**
     * 分組名稱
     */
    private String groupName = "product";
    /**
     * 主機(jī)名
     */
    private String host = "http://java.tedu.cn";
    /**
     * 標(biāo)題
     */
    private String title = "商城在線API文檔--商品管理";
    /**
     * 簡(jiǎn)介
     */
    private String description = "商城在線API文檔--商品管理";
    /**
     * 服務(wù)條款URL
     */
    private String termsOfServiceUrl = "http://www.apache.org/licenses/LICENSE-2.0";
    /**
     * 聯(lián)系人
     */
    private String contactName = "Java教學(xué)研發(fā)部";
    /**
     * 聯(lián)系網(wǎng)址
     */
    private String contactUrl = "http://java.tedu.cn";
    /**
     * 聯(lián)系郵箱
     */
    private String contactEmail = "java@tedu.cn";
    /**
     * 版本號(hào)
     */
    private String version = "1.0.0";
    @Autowired
    private OpenApiExtensionResolver openApiExtensionResolver;
    public Knife4jConfiguration() {
        log.debug("創(chuàng)建配置類對(duì)象:Knife4jConfiguration");
    }
    @Bean
    public Docket docket() {
        String groupName = "1.0.0";
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .host(host)
                .apiInfo(apiInfo())
                .groupName(groupName)
                .select()
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any())
                .build()
                .extensions(openApiExtensionResolver.buildExtensions(groupName));
        return docket;
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title(title)
                .description(description)
                .termsOfServiceUrl(termsOfServiceUrl)
                .contact(new Contact(contactName, contactUrl, contactEmail))
                .version(version)
                .build();
    }
}

注意:務(wù)必檢查以上配置類中的basePackage屬性的值,必須是當(dāng)前項(xiàng)目中控制器類所在的包!

在項(xiàng)目中已經(jīng)完成以上步驟后,啟動(dòng)項(xiàng)目,打開(kāi)瀏覽器,通過(guò)http://localhost:8080/doc.html即可訪問(wèn)在線API文檔。

2.配置API文檔信息

@Api:添加在控制器類上

  • 此注解的tags屬性,可配置模塊名稱,可以在模塊名稱中使用編號(hào),例如:01. 品牌管理模塊,最終將按照編號(hào)升序排列

@ApiOperation:添加在控制器類中處理請(qǐng)求的方法上

  • 此注解的value屬性,可配置業(yè)務(wù)名稱

@ApiOperationSupport:添加在控制器類中處理請(qǐng)求的方法上

  • 此注解的order屬性(int類型),可配置業(yè)務(wù)的排序序號(hào),最終將升序排列

@ApiModelProperty:添加在POJO類型的屬性上

  • 此注解的value屬性,可配置參數(shù)名稱(說(shuō)明)
  • 此注解的required屬性,可配置是否必須提交此參數(shù)
  • 此注解的example屬性,可配置此請(qǐng)求參數(shù)的示例值

@ApiImplicitParam:添加在控制器類中處理請(qǐng)求的方法上,用于對(duì)未封裝的請(qǐng)求參數(shù)添加說(shuō)明(例如Long id參數(shù))

  • 必須配置此注解的name屬性,取值為方法的參數(shù)名稱,表示當(dāng)前注解對(duì)哪個(gè)參數(shù)進(jìn)行說(shuō)明
  • 此注解的value屬性,可配置參數(shù)名稱(說(shuō)明)
  • 此注解的required屬性,可配置是否必須提交此參數(shù)
  • 此注解的dataType屬性,可配置參數(shù)的數(shù)據(jù)類型(例如取值為"long"
  • 此注解的example屬性,可配置此請(qǐng)求參數(shù)的示例值

@ApiImplicitParams:添加在控制器類中處理請(qǐng)求的方法上,此注解的value屬性是@ApiImplicitParam注解的數(shù)組類型,當(dāng)需要使用@ApiImplicitParam對(duì)多個(gè)未封裝參數(shù)進(jìn)行說(shuō)明時(shí),需要將多個(gè)@ApiImplicitParam注解的配置作為當(dāng)前注解的參數(shù)

@ApiOperation("刪除類別")
@ApiOperationSupport(order = 200)
@ApiImplicitParams({
    @ApiImplicitParam(name = "id", value = "類別ID", required = true, dataType = "long"),
    @ApiImplicitParam(name = "userId", value = "用戶ID", required = true, dataType = "long")
})
@PostMapping("/delete")
public void delete(Long userId, Long id) {}

到此這篇關(guān)于SpringBoot Knife4j在線API文檔框架基本使用的文章就介紹到這了,更多相關(guān)SpringBoot Knife4j 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java基礎(chǔ)之打印萬(wàn)年歷的簡(jiǎn)單實(shí)現(xiàn)(案例)

    Java基礎(chǔ)之打印萬(wàn)年歷的簡(jiǎn)單實(shí)現(xiàn)(案例)

    下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)之打印萬(wàn)年歷的簡(jiǎn)單實(shí)現(xiàn)(案例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • Java8中Lambda表達(dá)式使用和Stream API詳解

    Java8中Lambda表達(dá)式使用和Stream API詳解

    這篇文章主要給大家介紹了關(guān)于Java8中Lambda表達(dá)式使用和Stream API的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java8具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Java 開(kāi)發(fā)的幾個(gè)注意點(diǎn)總結(jié)

    Java 開(kāi)發(fā)的幾個(gè)注意點(diǎn)總結(jié)

    這篇文章主要介紹了Java開(kāi)發(fā)的幾個(gè)注意點(diǎn)的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • spring boot使用自定義的線程池執(zhí)行Async任務(wù)

    spring boot使用自定義的線程池執(zhí)行Async任務(wù)

    這篇文章主要介紹了spring boot使用自定義的線程池執(zhí)行Async任務(wù)的相關(guān)資料,需要的朋友可以參考下
    2018-02-02
  • RabbitMQ中的Publish-Subscribe模式最佳實(shí)踐記錄

    RabbitMQ中的Publish-Subscribe模式最佳實(shí)踐記錄

    Publish/Subscribe 模式是 RabbitMQ 中一種強(qiáng)大且靈活的消息傳遞模式,適用于需要將消息廣播給多個(gè)訂閱者的場(chǎng)景,這篇文章主要介紹了RabbitMQ中的Publish-Subscribe模式,需要的朋友可以參考下
    2024-12-12
  • idea文件被鎖無(wú)法更改問(wèn)題

    idea文件被鎖無(wú)法更改問(wèn)題

    這篇文章主要介紹了idea文件被鎖無(wú)法更改問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • mybatis test標(biāo)簽如何判斷值是否相等

    mybatis test標(biāo)簽如何判斷值是否相等

    這篇文章主要介紹了mybatis test標(biāo)簽判斷值是否相等的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java對(duì)稱加密算法DES實(shí)例詳解

    Java對(duì)稱加密算法DES實(shí)例詳解

    這篇文章主要介紹了Java對(duì)稱加密算法DES,結(jié)合實(shí)例形式詳細(xì)分析了java DES算法的概念、原理、實(shí)現(xiàn)方法與應(yīng)用場(chǎng)景,需要的朋友可以參考下
    2019-09-09
  • Java通過(guò)值查找對(duì)應(yīng)的枚舉的實(shí)現(xiàn)

    Java通過(guò)值查找對(duì)應(yīng)的枚舉的實(shí)現(xiàn)

    本文主要介紹了Java通過(guò)值查找對(duì)應(yīng)的枚舉的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • Java多線程Condition接口原理介紹

    Java多線程Condition接口原理介紹

    這篇文章主要介紹了Java多線程Condition接口原理介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09

最新評(píng)論

柳州市| 鹿邑县| 雷山县| 贞丰县| 青龙| 海原县| 成都市| 当阳市| 平乡县| 工布江达县| 嵊泗县| 西宁市| 仙游县| 景宁| 鄂州市| 龙江县| 宜川县| 呼玛县| 韶山市| 仁怀市| 英超| 固安县| 象山县| 江川县| 佛坪县| 连州市| 湘潭市| 建昌县| 沛县| 中阳县| 额济纳旗| 安国市| 平江县| 新干县| 焉耆| 桃源县| 佛坪县| 昆山市| 神木县| 凤山市| 昌图县|