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

springboot生成接口文檔

這篇具有很好參考價值的文章主要介紹了springboot生成接口文檔。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

當(dāng)我們在使用Spring MVC寫接口的時候,為了生成API文檔,為了方便整合Swagger,都是用這個SpringFox的這套封裝。但是,自從2.9.2版本更新之后,就一直沒有什么動靜,也沒有更上Spring Boot的大潮流,有一段時間還一直都是寫個配置類來為項(xiàng)目添加文檔配置的。為此,之前就造了這么個輪子:
也沒什么難度,就是造的早,所以得到了不少Star?,F(xiàn)在SpringFox出了一個starter,看了一下功能,雖然還不完美,但相較于之前我們自己的輪子來說還是好蠻多的。來看看這個版本有些什么亮點(diǎn):

Spring 5,Webflux 支持(僅請求映射支持,尚不支持功能端點(diǎn))
Spring Integration 支持
Spring Boot 支持 springfox-boot-starter 依賴性(零配置,自動配置支持)
具有自動完成功能的文檔化配置屬性
更好的規(guī)范兼容性
支持 OpenApi 3.0.3
幾乎零依賴性(唯一需要的庫是 spring-plugin、pswagger-core)
現(xiàn)有的 swagger2 注釋將繼續(xù)有效,并豐富 open API 3.0 規(guī)范
對于這次的更新,我覺得比較突出的幾點(diǎn):Webflux的支持,目前的輪子就沒有做到;對OpenApi 3的支持;以及對Swagger 2的兼容(可以比較方便的做升級了)。

錯誤行代碼:
Cause by:
Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
錯誤原因Springfox使用的路徑匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher
解決方案:
1.簡單粗暴:升級spring-boot-starter-parent版本

?<parent>
? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? <artifactId>spring-boot-starter-parent</artifactId>
? ? ? ? <version>2.5.6</version>
? ? ? ? <relativePath/> <!-- lookup parent from repository -->
? ? </parent>

2.高級感:在application.yaml里配置:spring.mvc.pathmatch.matching-strategy: ANT_PATH_MATCHER

spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

接下來進(jìn)入主題:上手

第一步導(dǎo)入依賴

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.9.6</version>
        </dependency>

第二步在主啟動類開啟支持

springboot生成接口文檔

?訪問http://localhost:8080/doc.html即可 默認(rèn)ui就是bootstarp-ui。文章來源地址http://www.zghlxwxcb.cn/news/detail-435786.html

可以添加自定義設(shè)置

@Configuration
@EnableSwagger2
public class Swagger2Config {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //為當(dāng)前包下的controller生成api文檔
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        //設(shè)置文檔信息
        return new ApiInfoBuilder()
                .title("小7接口文檔")
                .description("小7接口文檔")
                .contact(new Contact("李佳琪", "http:localhost:8080/doc.html",
                        "1004102689@qq.com"))
                .version("1.0")
                .build();
    }
/**
     * 解決swagger在springboot2.7以后的空指針異常
     */
    @Bean
    public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
        return new BeanPostProcessor() {
            @Override
            public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
                if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {
                    customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
                }
                return bean;
            }
            private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {
                List<T> copy = mappings.stream()
                        .filter(mapping -> mapping.getPatternParser() == null).toList();
                mappings.clear();
                mappings.addAll(copy);
            }
            @SuppressWarnings("unchecked")
            private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {
                try {
                    Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
                    assert field != null;
                    field.setAccessible(true);
                    return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
                } catch (IllegalArgumentException | IllegalAccessException e) {
                    throw new IllegalStateException(e);
                }
            }
        };
    }
}

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

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

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

相關(guān)文章

  • 【SpringBoot】SpringBoot引入接口文檔生成工具(Swagger+Knife4j)

    由于目前工作項(xiàng)目寫的接口越來越多了,為了能夠更加方便地優(yōu)化接口,以及整理接口文檔,所以就考慮引入接口文檔生成工具。目前的接口文檔生成工具被提及較多的是Swagger,經(jīng)過了引入嘗試后,Swagger是比較輕松地就被引入了。但是Swagger頁面屬實(shí)是難以恭維,比較簡單但

    2024年01月23日
    瀏覽(21)
  • SpringBoot接口文檔生成插件:EasyYapi(支持yapi、Markdown、Postman)

    優(yōu)勢 對比手寫文檔: 略 對比Swagger: 不需要寫繁雜的swagger注解,只要求代碼注釋遵循全球統(tǒng)一的JavaDoc規(guī)范 支持導(dǎo)出到Y(jié)api、Postman腳本、Markdown文檔、Json 準(zhǔn)備工作 IDEA安裝插件:EasyYapi GitHub 規(guī)范 JavaDoc規(guī)范 遵循JavaDoc規(guī)范(其實(shí)就是開發(fā)過程中把字段注釋和方法注釋寫好)。

    2024年02月02日
    瀏覽(25)
  • 【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)
  • gin中使用swagger生成接口文檔

    gin中使用swagger生成接口文檔

    想要使用 gin-swagger 為你的代碼自動生成接口文檔,一般需要下面三個步驟: 按照swagger要求給接口代碼添加聲明式注釋,具體參照聲明式注釋格式。 使用swag工具掃描代碼自動生成API接口文檔數(shù)據(jù) 使用gin-swagger渲染在線接口文檔頁面 第一步:添加注釋 在程序入口main函數(shù)上以

    2024年01月25日
    瀏覽(17)
  • SpringBoot使用Swagger配置API接口文檔

    SpringBoot使用Swagger配置API接口文檔

    Swagger是一個用于設(shè)計、構(gòu)建和文檔化 RESTful API 的開源框架。它提供了一組工具,使得開發(fā)人員能夠更輕松地定義、描述和測試API接口。 具體來說,Swagger包含以下幾個核心組件: Swagger規(guī)范(Swagger Specification): 定義了一種格式化的API規(guī)范,使用YAML或JSON格式,用于描述API的各

    2024年02月05日
    瀏覽(27)
  • IntelliJ IDEA 中使用Apifox IDEA 插件快速生成接口API (Java 開發(fā)告別寫接口文檔)

    IntelliJ IDEA 中使用Apifox IDEA 插件快速生成接口API (Java 開發(fā)告別寫接口文檔)

    Apifox IDEA 插件快速上手 | Apifox 幫助文檔 特別注意: 1、idea版本必須大于2019.03才可以使用這個插件 2、修改設(shè)置不然分組校驗(yàn)必填項(xiàng),apifox里面顯示都是必填 添加圖片注釋,不超過 140 字(可選) Apifox IDEA 插件(Apifox Helper) 主要用于 IDEA 項(xiàng)目快速生成 API 文檔,并同步到 A

    2024年03月24日
    瀏覽(29)
  • Spring Boot 中使用 Poi-tl 渲染數(shù)據(jù)并生成 Word 文檔

    本文 Demo 已收錄到 demo-for-all-in-java 項(xiàng)目中,歡迎大家 star 支持!后續(xù)將持續(xù)更新! 產(chǎn)品經(jīng)理急沖沖地走了過來?!脯F(xiàn)在需要將按這些數(shù)據(jù)生成一個 Word 報告文檔,你來安排下」 項(xiàng)目中有這么一個需求,需要將用戶填寫的數(shù)據(jù)填充到一個 Word 文檔中,而這個 Word 文檔是人家給

    2024年02月09日
    瀏覽(23)
  • Django生成接口文檔

    當(dāng)我們使用Django開發(fā)Web應(yīng)用的時候,API接口文檔的編寫是非常必要的。通常我們會使用Swagger、apidoc等工具來自動生成API文檔。本文介紹如何使用Django Rest Framework自動生成接口文檔。 安裝Django Rest Framework 在項(xiàng)目中安裝Django Rest Framework(DRF): 在 settings.py 中添加‘rest_framewor

    2024年02月09日
    瀏覽(17)
  • Apifox自動生成接口文檔

    Apifox自動生成接口文檔

    官方文檔:Apifox - API 文檔、調(diào)試、Mock、測試一體化協(xié)作平臺 - 接口文檔工具,接口自動化測試工具,接口Mock工具,API文檔工具,API Mock工具,API自動化測試工具 ????????打開 IDEA Preferences(Settings) Plugins ,搜索 Apifox Helper 官方地址:Apifox IDEA 插件快速上手 | Apifox 幫助文檔

    2024年02月12日
    瀏覽(36)
  • postman自動生成接口文檔

    postman自動生成接口文檔

    ?點(diǎn)擊: ?會自動生成一個文件夾 ? ?點(diǎn)擊圖表,修改名字 新建一個請求,到時候會自動保存到文件夾里面,但是保存前看清楚保存的名字 ? ?點(diǎn)擊三個點(diǎn)-》點(diǎn)擊export即可

    2024年02月11日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包