日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

前后端分離項目必備——自動生成API文檔神器Swagger

來源: 責編: 時間:2023-09-21 20:48:13 392觀看
導讀Swagger的故事隨著Web服務的發展,RESTful風格的API越來越受到開發者的青睞,因為它簡單且符合Web的本質。Spring框架也不落人后,提供了一個名為Spring MVC的模塊,用于支持RESTful API的開發。Spring MVC是一個基于注解的We

Swagger的故事

隨著Web服務的發展,RESTful風格的API越來越受到開發者的青睞,因為它簡單且符合Web的本質。Spring框架也不落人后,提供了一個名為Spring MVC的模塊,用于支持RESTful API的開發。Spring MVC是一個基于注解的Web框架,讓開發者可以使用簡潔且優雅的方式定義和實現API。Lxs28資訊網——每日最新資訊28at.com

然而Spring MVC并沒有提供一個方便且標準的方式來描述和文檔化API,這給API的管理和維護帶來了一定的困難。為了解決這個問題,一個名為Swagger的項目誕生了。Swagger是由Tony Tam在2010年創建的一個開源項目,旨在為RESTful API提供一個規范且完整的框架4。Tony Tam是一個資深的Java開發者,他在使用Spring MVC開發API時感受到了它的優點和缺點,所以他決定創建一個可以與Spring MVC無縫集成的工具,來幫助開發者更好地設計、描述、調用和可視化API。Lxs28資訊網——每日最新資訊28at.com

Swagger項目很快就得到了開源社區和業界的認可和支持,成為了最流行的API開發工具之一。Swagger項目也不斷地演進和完善,涵蓋了各種語言和框架,如Python, Ruby, Node.js, Django, Rails等。Swagger項目也不斷地與其他標準和工具集成,如OpenAPI Specification, Postman, Apigee等。Lxs28資訊網——每日最新資訊28at.com

Swagger的作用

Swagger的主要作用是為RESTful風格的Web服務提供一個標準且完整的框架,包括以下幾個方面:Lxs28資訊網——每日最新資訊28at.com

  • 生成:Swagger可以根據代碼或者手動編寫的規范文件,自動生成API文檔,包括請求參數、響應結果、錯誤碼等信息。這樣可以節省編寫文檔的時間,也可以保證文檔和代碼的一致性。
  • 描述:Swagger可以使用一種結構化的語言(如YAML或JSON)來描述API的元數據,如接口名稱、路徑、方法、參數類型、返回值類型等。這樣可以方便地對API進行管理和維護,也可以方便地進行版本控制和協作開發。
  • 調用:Swagger可以提供一個可視化的用戶界面(如Swagger UI),讓用戶可以直接在瀏覽器中對API進行測試和調試,而不需要使用其他的工具(如Postman或curl)。這樣可以提高開發效率,也可以方便地驗證API的功能和性能。
  • 可視化:Swagger可以提供一個圖形化的用戶界面(如Swagger Editor),讓用戶可以以圖形化的方式編輯和查看API規范文件,而不需要關心語法細節。這樣可以提高用戶體驗,也可以方便地進行錯誤檢查和修正。

Swagger的好處

Swagger作為一個流行且成熟的API開發工具,它有以下幾個好處:Lxs28資訊網——每日最新資訊28at.com

  • 標準化:Swagger遵循OpenAPI規范,這是一個業界公認且廣泛使用的RESTful API描述標準。使用Swagger可以保證API的兼容性和互操作性,也可以方便地與其他遵循OpenAPI規范的工具集成。
  • 靈活性:Swagger支持多種編程語言和框架,如Java, Python, Ruby, Node.js, Spring, Django, Rails等。使用Swagger可以根據不同的需求和場景選擇合適的技術棧,也可以輕松地遷移和重構代碼。
  • 易用性:Swagger提供了豐富且易用的工具和用戶界面,讓用戶可以快速地創建、修改、查看和測試API。使用Swagger可以降低API開發的門檻和難度,也可以提高API開發的質量和效率。

Swagger項目現在已經成為了一個龐大且活躍的生態系統,包括以下幾個部分:Lxs28資訊網——每日最新資訊28at.com

  • Swagger Core:提供了一系列的庫和工具,用于生成、解析、驗證和轉換Swagger規范文件。
  • Swagger UI:提供了一個可視化的用戶界面,用于展示、測試和調試API。
  • Swagger Editor:提供了一個圖形化的用戶界面,用于編輯和查看Swagger規范文件。
  • Swagger Codegen:提供了一個代碼生成器,用于根據Swagger規范文件生成客戶端和服務端代碼。
  • Swagger Inspector:提供了一個在線工具,用于檢查、測試和分析API。
  • Swagger Hub:提供了一個在線平臺,用于協作、管理和發布API。

Springboot使用Swagger3生成API文檔

步驟說明Lxs28資訊網——每日最新資訊28at.com

  • 在pom.xml文件中添加springdoc-openapi-ui依賴,這是一個支持OAS 3.0的Swagger UI庫,它可以自動集成到Spring Boot應用中,并提供一個可視化的用戶界面來展示、測試和調試API。
  • 在配置類中添加@OpenAPIDefinition注解,并定義一些API的基本信息,如標題、描述、版本、聯系人等。
  • 在控制器類中添加@Tag注解,并定義一些API的分組信息,如名稱、描述等。
  • 在方法上添加@Operation注解,并定義一些API的操作信息,如摘要、描述、響應等。
  • 在參數上添加@Parameter注解,并定義一些API的參數信息,如名稱、描述、是否必填、示例等。
  • 在模型類上添加@Schema注解,并定義一些API的模型信息,如名稱、描述、屬性等。

注意:Lxs28資訊網——每日最新資訊28at.com

對于2.x.x版本,訪問地址為:http://localhost:8080/{context-path}/swagger-ui.htmlLxs28資訊網——每日最新資訊28at.com

對于3.x.x版本,訪問地址為:http://localhost:8080/{context-path}/swagger-ui/index.htmlLxs28資訊網——每日最新資訊28at.com

其中,localhost是你的本地主機名,8080是你的項目端口號,{context-path}是你的項目上下文路徑。你需要根據你的實際情況來替換這些參數。Lxs28資訊網——每日最新資訊28at.com

例如,如果你的項目端口號是8081,上下文路徑是demo,Swagger版本是3.0.0,那么你可以訪問以下地址來查看Swagger UI界面:Lxs28資訊網——每日最新資訊28at.com

http://localhost:8081/demo/swagger-ui/index.htmlLxs28資訊網——每日最新資訊28at.com

pom.xml文件

<dependencies>    <!-- Spring Boot Starter -->    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <!-- springdoc-openapi-ui -->    <dependency>        <groupId>org.springdoc</groupId>        <artifactId>springdoc-openapi-ui</artifactId>        <version>1.5.12</version>    </dependency></dependencies>

配置類

// 配置類@Configuration@OpenAPIDefinition(        info = @Info(                title = "Swagger3示例API",                description = "這是一個使用Swagger3來開發Spring Boot應用中的API的示例",                version = "1.0",                contact = @Contact(                        name = "張三",                        email = "zhangsan@example.com",                        url = "1"                )        ))public class SwaggerConfig {}

控制器類

// 控制器類@RestController@RequestMapping("/user")@Tag(name = "用戶管理API", description = "提供用戶相關的操作")public class UserController {    @GetMapping("/{id}")    @Operation(summary = "根據ID查詢用戶信息", description = "返回用戶實體對象")    @ApiResponse(responseCode = "200", description = "查詢成功")    @ApiResponse(responseCode = "404", description = "用戶不存在")    public User getUserById(@PathVariable("id") @Parameter(description = "用戶ID", required = true, example = "1") Long id) {        // 模擬查詢數據庫        User user = new User();        user.setId(id);        user.setName("張三");        user.setAge(18);        return user;    }    @PostMapping("/")    @Operation(summary = "添加用戶信息", description = "返回添加結果")    @ApiResponse(responseCode = "200", description = "添加成功")    @ApiResponse(responseCode = "400", description = "參數錯誤")    public String addUser(@RequestBody @Parameter(description = "用戶實體對象", required = true) User user) {        // 模擬插入數據庫        return "添加成功";    }}

用戶實體類

// 用戶實體類@Schema(name = "用戶實體類", description = "用戶的基本信息")public class User {    @Schema(description = "用戶ID")    private Long id;    @Schema(description = "用戶姓名")    private String name;    @Schema(description = "用戶年齡")    private Integer age;    // 省略getter和setter方法}

Lxs28資訊網——每日最新資訊28at.com

Swagger注解總結:

Swagger注解有以下幾種類型:Lxs28資訊網——每日最新資訊28at.com

  • 類級別的注解:用于標識一個類是Swagger的資源,可以設置一些全局的屬性,如tags、value等。常用的類級別的注解有@Api。
  • 方法級別的注解:用于標識一個方法是一個http請求的操作,可以設置一些操作相關的屬性,如value、notes、response等。常用的方法級別的注解有@ApiOperation、@ApiResponses、@ApiResponse等。
  • 參數級別的注解:用于標識一個方法的參數或者一個字段是API的參數,可以設置一些參數相關的屬性,如value、required、example等。常用的參數級別的注解有@ApiParam、@ApiImplicitParam等。
  • 模型級別的注解:用于標識一個類是API的模型,可以設置一些模型相關的屬性,如value、description等。常用的模型級別的注解有@ApiModel、@ApiModelProperty等。
  • 忽略級別的注解:用于標識一個類或者方法被忽略,不顯示在Swagger文檔上。常用的忽略級別的注解有@ApiIgnore。

下面是一個對Swagger常用注解的總結表格:Lxs28資訊網——每日最新資訊28at.com

Lxs28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-10899-0.html前后端分離項目必備——自動生成API文檔神器Swagger

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 深入淺出:分布式、CAP 和 BASE 理論

下一篇: JavaScript 終于原生支持數組分組了!

標簽:
  • 熱門焦點
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機的發布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發布,本次就這款耳機新品給大家帶來一個簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產
  • 分布式系統中的CAP理論,面試必問,你理解了嘛?

    對于剛剛接觸分布式系統的小伙伴們來說,一提起分布式系統,就感覺高大上,深不可測。而且看了很多書和視頻還是一臉懵逼。這篇文章主要使用大白話的方式,帶你理解一下分布式系統
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保
  • 深度探索 Elasticsearch 8.X:function_score 參數解讀與實戰案例分析

    在 Elasticsearch 中,function_score 可以讓我們在查詢的同時對搜索結果進行自定義評分。function_score 提供了一系列的參數和函數讓我們可以根據需求靈活地進行設置。近期
  • 品牌洞察丨服務本地,美團直播成效幾何?

    來源:17PR7月11日,美團App首頁推薦位出現&ldquo;美團直播&rdquo;的固定入口。在直播聚合頁面,外賣&ldquo;神槍手&rdquo;直播間、美團旅行直播間、美團買菜直播間等均已上線,同時
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元&ldquo;人在職場,應該選擇什么樣的著裝?&rdquo;近日,在網絡上,一個與著裝相關的帖子引發關注,在該帖子里,一位在高級寫字樓亞洲金
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
  • AMD的AI芯片轉單給三星可能性不大 與臺積電已合作至2nm制程

    據 DIGITIMES 消息,英偉達 AI GPU 出貨逐季飆升,接下來 AMD MI 300 系列將在第 4 季底量產。而半導體業內人士表示,近日傳出 AMD 的 AI 芯片將轉單給
  • Windows 11發布,微軟一改往常對老機型開放的態度

    距離 Windows 11 發布已經過去一周,在過去一周里,很多數碼愛好者圍繞其對 Android 應用的支持、對老機型的升級問題展開了激烈討論。與以往不同的是,在這次大
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
久久九九精品99国产精品| 欧美日韩免费视频| 久久精品二区三区| 美女图片一区二区| 欧美日韩国产一区| 国产欧美亚洲视频| 亚洲电影在线观看| 亚洲无限乱码一二三四麻| 欧美中文在线免费| 欧美sm视频| 欧美激情综合在线| 国产日韩欧美自拍| 亚洲精品永久免费| 亚洲欧美日本伦理| 久久性天堂网| 国产精品v一区二区三区| 国产主播在线一区| 99视频精品在线| 久久精品一区二区| 欧美日韩精品中文字幕| 国模吧视频一区| 一本久道综合久久精品| 久久久久99| 国产精品成人一区二区艾草| 一区在线观看视频| 亚洲综合色视频| 老鸭窝亚洲一区二区三区| 国产精品国产精品| 亚洲国产毛片完整版| 亚洲欧美日韩一区在线| 欧美激情二区三区| 国内精品一区二区三区| 亚洲调教视频在线观看| 男人插女人欧美| 国产一区在线播放| 亚洲一区二区精品视频| 欧美激情成人在线视频| 黄色成人在线网站| 亚洲影视在线播放| 欧美精品久久99久久在免费线| 国产一区二区高清视频| 亚洲一区二区久久| 欧美乱人伦中文字幕在线| 精品成人一区| 欧美在线一二三四区| 国产精品电影观看| 日韩系列在线| 欧美成人精品一区二区三区| 国产一区二区三区久久悠悠色av| 亚洲天堂网在线观看| 欧美日韩国产91| 亚洲激情在线观看视频免费| 久久久xxx| 国产欧美日本在线| 亚洲一区二区三区四区视频| 欧美久久99| 91久久精品一区| 老妇喷水一区二区三区| 国内成人自拍视频| 欧美在线观看视频一区二区三区| 欧美午夜精品理论片a级按摩| 亚洲激情在线观看视频免费| 老色批av在线精品| 精品999成人| 欧美呦呦网站| 国产视频一区在线| 欧美一区二区精品久久911| 国产精品国产三级国产普通话蜜臀 | 亚洲激情在线观看| 久久久人成影片一区二区三区观看 | 欧美理论电影网| 亚洲激情黄色| 欧美va亚洲va香蕉在线| 亚洲第一精品福利| 麻豆精品视频在线| 亚洲国产欧美一区二区三区丁香婷| 久久久久免费视频| 在线成人av| 免费日韩av电影| 亚洲人成啪啪网站| 欧美精品在线观看91| 日韩视频在线免费观看| 欧美日韩美女在线| 亚洲视频一区二区免费在线观看| 欧美日韩免费在线观看| 日韩系列在线| 欧美日韩中文字幕综合视频| 亚洲视频一区二区在线观看 | 国产区在线观看成人精品| 性欧美暴力猛交另类hd| 国产亚洲欧美一区二区| 久久久久成人网| 亚洲高清不卡| 欧美精品激情在线| 亚洲天堂av电影| 国产美女精品视频免费观看| 久久狠狠婷婷| 亚洲国产欧美精品| 欧美日韩综合一区| 香蕉精品999视频一区二区| 国产一区二区三区不卡在线观看| 久久久精品一品道一区| 91久久综合| 欧美视频一区二区在线观看| 亚洲免费视频网站| 国产曰批免费观看久久久| 久久一区激情| 日韩视频在线一区二区| 国产精品女人网站| 久久久久国产精品人| 亚洲激情小视频| 国产精品家教| 欧美中文字幕久久| 亚洲国产一区在线观看| 国产精品theporn| 久久精品国产精品亚洲综合| 亚洲国产一区二区三区青草影视 | 欧美激情中文不卡| 亚洲曰本av电影| 一区免费观看| 欧美日韩免费观看一区二区三区| 午夜电影亚洲| 亚洲韩国日本中文字幕| 国产精品v欧美精品v日韩| 久久久久88色偷偷免费| 99在线视频精品| 国产视频丨精品|在线观看| 欧美成人免费网| 香蕉久久一区二区不卡无毒影院 | 国产精品一区二区久久国产| 久久亚洲欧洲| 亚洲深夜福利| 影音先锋成人资源站| 欧美色精品天天在线观看视频| 欧美一区午夜精品| 日韩午夜精品| 妖精视频成人观看www| 国产精品亚洲综合| 国产精品视频xxx| 毛片一区二区三区| 亚洲免费一在线| 亚洲成人在线视频播放| 国产精品青草综合久久久久99| 鲁大师影院一区二区三区| 亚洲一区二区三区在线| 亚洲盗摄视频| 国产亚洲精品资源在线26u| 欧美另类视频在线| 久久视频在线免费观看| 亚洲欧美日韩久久精品| 亚洲理伦电影| 伊人久久大香线蕉综合热线| 国产精品乱人伦一区二区| 欧美国产精品中文字幕| 久久精品首页| 亚洲一区三区电影在线观看| 亚洲欧洲日产国产网站| 国产又爽又黄的激情精品视频| 欧美四级在线观看| 欧美二区在线| 久久亚洲私人国产精品va| 性视频1819p久久| 亚洲视屏一区| 日韩一级黄色大片| 亚洲国产精品v| 黑丝一区二区三区| 国产精品一区亚洲| 国产精品h在线观看| 欧美美女bb生活片| 欧美mv日韩mv国产网站| 久久裸体视频| 久久国产精品亚洲77777| 亚洲一本大道在线| 亚洲久久一区| 亚洲精品1区| 伊大人香蕉综合8在线视| 国产午夜精品麻豆| 国产精品永久免费| 国产精品美女久久久久久久| 欧美日韩一区二区在线观看 | 欧美日本在线看| 免费一级欧美在线大片| 久久久久久穴| 香蕉久久夜色精品| 亚洲自拍偷拍福利| 亚洲一区二区精品| 亚洲最新在线| 亚洲人成在线播放| 亚洲欧洲美洲综合色网| 亚洲第一黄色| 韩国免费一区| 国产亚洲成av人片在线观看桃| 国产久一道中文一区| 国产精品日韩久久久久| 欧美视频第二页| 欧美日韩精品欧美日韩精品一 | 欧美成人一区二区三区在线观看| 欧美有码视频| 欧美在线高清| 久久九九精品99国产精品| 欧美在线|欧美| 亚洲欧美另类综合偷拍| 一区二区三区日韩欧美| 亚洲视频一二三|