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

SpringBoot使用SpringDoc+OpenAPI3.0實現(xiàn)接口文檔自動生成

 更新時間:2026年03月31日 09:32:15   作者:希望永不加班  
本文介紹了在前后端分離項目中使用SpringDoc實現(xiàn)接口文檔自動生成的方法,包括核心依賴、啟動配置、常用注解、生產(chǎn)環(huán)境配置、帶Token權(quán)限接口調(diào)試等內(nèi)容,提高了接口文檔的生成效率和維護性,需要的朋友可以參考下

在前后端分離項目中,接口文檔是剛需。
傳統(tǒng)手寫文檔效率低、更新不及時、容易和代碼不一致,溝通成本極高。

SpringBoot 官方早已放棄舊版 SpringFox(Swagger2),轉(zhuǎn)而推薦更輕量、更強大的 SpringDoc + OpenAPI 3.0。

今天我們來實現(xiàn)接口文檔自動生成、在線調(diào)試、權(quán)限配置、分組管理、生產(chǎn)環(huán)境關(guān)閉。

一、為什么選 SpringDoc,而不是 Swagger2?

  1. 支持 OpenAPI 3.0 規(guī)范
    (最新行業(yè)標準)
  2. 兼容 SpringBoot 2.6x / 2.7x / 3.x
    (Swagger不兼容高版本Boot)
  3. 無侵入、零配置,不污染業(yè)務(wù)代碼
  4. 性能更好、體積更小
  5. 支持 SpringBoot 官方推薦
  6. UI 更美觀、調(diào)試更方便

二、核心依賴

直接在 pom.xml 添加,無需其他依賴

<dependency>
<groupId>org.springdocgroupId>
<artifactId>springdoc-openapi-uiartifactId>
<version>1.7.0version>
<dependency>

SpringBoot 3.x 用這個:

<dependency>
<groupId>org.springdocgroupId>
<artifactId>springdoc-openapi-starter-webmvc-uiartifactId>
<version>2.2.0version>
<dependency>

三、啟動

引入依賴后,什么都不用配!

直接啟動項目,訪問地址:

http://localhost:8080/swagger-ui.html

就能看到全自動生成的接口文檔,支持:

  • 自動掃描所有 Controller
  • 自動解析參數(shù)、返回值
  • 在線發(fā)送請求調(diào)試
  • 自動展示實體類字段

四、相關(guān)配置

創(chuàng)建配置類 SpringDocConfig.java,定義文檔標題、描述、版本、作者:

importio.swagger.v3.oas.models.OpenAPI;
importio.swagger.v3.oas.models.info.Contact;
importio.swagger.v3.oas.models.info.Info;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
@Configuration
publicclassSpringDocConfig{
@Bean
publicOpenAPIspringShopOpenAPI(){
returnnewOpenAPI()
info(newInfo()
title("SpringBoot 實戰(zhàn)項目 API 文檔")
description("接口文檔自動生成 | 在線調(diào)試")
version("v1.0.0")
name("后端開發(fā)")
email("developer@demo.com")
)
);
}
}

五、常用注解

SpringDoc 使用 OpenAPI 3 注解,比 Swagger 更簡潔。

1. 控制層注解

importio.swagger.v3.oas.annotations.Operation;
importio.swagger.v3.oas.annotations.tags.Tag;
@RestController
@RequestMapping("/user")
@Tag(name ="用戶管理模塊", description ="用戶增刪改查接口")
publicclassUserController{
@Operation(summary ="根據(jù)ID查詢用戶", description ="傳入用戶ID,返回用戶詳情")
@GetMapping("/{id}")
publicResult<User>getUserById(@PathVariableInteger id){
returnResult.success();
}
}

2. 實體/參數(shù)注解

importio.swagger.v3.oas.annotations.media.Schema;
@Data
@Schema(description ="用戶信息實體")
publicclassUser{
@Schema(description ="用戶ID", example ="1001")
privateInteger id;
@Schema(description ="用戶名", example ="zhangsan")
privateString username;
}

3. 隱藏接口

@Operation(hidden =true)
@GetMapping("/test")
publicStringtest(){
return"test";
}

六、application.yml 增強配置

springdoc:
  api-docs:
enabled:true# 是否開啟接口文檔(生產(chǎn)設(shè)為false)
path: /v3/api-docs  # 文檔JSON地址
  swagger-ui:
enabled:true# 是否開啟UI頁面
path: /swagger-ui.html  # 訪問路徑
tags-sorter: alpha  # 按字母排序
operations-sorter: alpha  # 接口排序
packages-to-scan: com.demo.controller  # 只掃描Controller包

生產(chǎn)環(huán)境務(wù)必關(guān)閉文檔

springdoc.api-docs.enabled=false
springdoc.swagger-ui.enabled=false

七、帶 Token 權(quán)限的接口調(diào)試

如果項目有登錄認證(Token/JWT),配置文檔自動帶請求頭:

@Bean
publicOpenAPIopenAPI(){
returnnewOpenAPI()
.info(newInfo()
title("API文檔")
version("v1.0")
)
// 添加全局Token請求頭
components(newComponents()
addSecuritySchemes("token",
newSecurityScheme()
type(SecurityScheme.Type.APIKEY)
in(SecurityScheme.In.HEADER)
name("token")
)
);
}

頁面上直接輸入 Token,所有接口自動攜帶。

八、接口文檔效果

訪問:http://localhost:8080/swagger-ui.html

你會看到:

  • 模塊分組清晰
  • 接口說明完整
  • 參數(shù)自動解析
  • 支持在線調(diào)試
  • 返回結(jié)構(gòu)自動展示(Result)

學會 SpringDoc,你再也不用手寫接口文檔,前后端對接效率直接翻倍!

以上就是SpringBoot使用SpringDoc+OpenAPI3.0實現(xiàn)接口文檔自動生成的詳細內(nèi)容,更多關(guān)于SpringBoot接口文檔自動生成的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

柘荣县| 资阳市| 门源| 桐梓县| 柳林县| 萝北县| 仁布县| 焦作市| 三穗县| 绿春县| 贵州省| 福泉市| 蒙自县| 嫩江县| 永清县| 乾安县| 饶河县| 军事| 南皮县| 漳平市| 临桂县| 萨嘎县| 镇宁| 内乡县| 黄梅县| 商水县| 宜宾市| 南岸区| 怀化市| 双峰县| 翁牛特旗| 巴林左旗| 河曲县| 泽库县| 西畴县| 西丰县| 桂平市| 仙游县| 申扎县| 集贤县| 汕头市|