精品欧美激情精品一区,亚洲自拍的二区三区,亚洲综合精品一区二区,国产伦精品一区二区三区视频免费


學AI,好工作 就找北大青鳥
關注小青 聽課做題,輕松學習
周一至周日
4000-9696-28

有了Swagger2 再也不用擔心API文檔的維護了

來源:北大青鳥總部 2023年03月20日 10:48

摘要: 今天我們就來說一個可以提高我們接口文檔開發效率的工具Swagger2。它的出現就是為了解決困擾程序猿的復雜的、難以維護的API接口的問題。

傷不起的前后端分離

現在互聯網技術開發領域,前后端分離開發模式儼然已經成為了主流模式,通常情況下后端工程師只需要做好給前端提供數據的API接口就可以了,而前端開發工程師則負責向后端請求數據并渲染頁面。

這樣做的好處就是后端開發人員只需要關注后端的業務,前端開發人員只需要關注前端的事情;崗位職責變得更加清晰,同時開發效率也大大提升。

在這個時候就出現了一個問題,前后端分離后數據交互的問題,前端開發工程師在去調用后端接口獲取數據的時候,是要遵循一定的規則的,比如:傳遞給后端的參數類型等。這個規則就是我們常說的接口文檔,這個文檔就定義了前后端數據交互時的規范。



作為一名程序猿,都或多或少地被接口文檔折磨過,前端工程師經常抱怨后端給的接口文檔與實際情況不一致;后端工程師總覺得太多的接口文檔要編寫以及維護接口文檔會耗費不少精力,經常來不及更新。

理想的狀態應該是,編寫好的接口文檔同時發給前端和后端工程師,大伙按照既定的規則各自開發就OK了。

而實際的工作中是經常充滿著變化。然而,理想終歸是理想。就像每個程序猿都會吐槽別的程序猿為什么總是不寫注釋,而自己在寫代碼的時候又總是很討厭些注釋一樣。



作為一個愛動腦、愛思考、技術特別高超的程序猿群體,但凡我們在工作遇到不爽的問題,我們一定會利用我們“聰明絕頂”的大腦來把它搞定。今天我們就來說一個可以提高我們接口文檔開發效率的工具Swagger2。它的出現就是為了解決困擾程序猿的復雜的、難以維護的API接口的問題。


Swagger2是什么?

A Powerful Interface to your API



Swagger2是一個規范和完整的框架,用于生成、描述、調用和可視化RESTful 風格的Web 服務。它主要包含三部分:

  • Swagger Codegen: 通過Codegen 可以將描述文件生成html格式和cwiki形式的接口文檔,同時也能生成多鐘語言的服務端和客戶端的代碼。

  • Swagger UI:提供了一個可視化的UI頁面展示描述文件。可以做一些的接口請求。

  • Swagger Editor: 編輯Swagger描述文件的編輯器,該編輯支持實時預覽描述文件的更新效果。也提供了在線編輯器和本地部署編輯器兩種方式。


SpringBoot整合Swagger2

開始之前呢,按照慣例,先介紹一下開發環境:

  • Spring Boot 2.1.5

  • JDK 8

  • Swagger 2.9.2


接下來咱么就在項目中體驗一下Swagger2,首先我們使用 Intelli IDEA先通過Spring Initializr 創建一個基礎的SpringBoot 項目。并且添加web的依賴,因為我們是RESTful風格的API。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
添加Swagger 的依賴
<!--swagger的依賴-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--swagger-ui可視化依賴,如果不添加此依賴,測試的結果是json格式的數據-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>


添加Swagger配置類

Swagger提供了一個Docket 對象,我們可以靈活的配置Swagger 的各項屬性

**
* Swagger配置類
*/
@Configuration // 表示這是一個配置類
@EnableSwagger2 // 表示啟用 Swagger2,也可以添加到主啟動類
public class Swagger2Config {


@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller.*"))
.paths(PathSelectors.any())
.build();
}


// API的詳細信息
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//標題
.title("Springboot整合swagger2")
//描述
.description("swagger2生成Restful風格API接口文檔")
.termsOfServiceUrl("kgc.cn/")
// 三個參數分別是姓名,網站,郵箱
.contact(new Contact("課工場", "kgc.cn/", "huan.zhang@kgc.cn"))
//版本號
.version("1.0")
.build();
}
}


配置實體類

**
* 用戶實體類
*/
@ApiModel(value="用戶對象",description="用戶對象user")
public class User implements Serializable {


@ApiModelProperty(name = "用戶id",value = "用戶id")
private Integer id; // 用戶id
@ApiModelProperty(name = "用戶name",value = "用戶名")
private String username; //用戶名
@ApiModelProperty(name = "用戶age",value = "年齡")
private Integer age; // 年齡


// 省略setter 、getter方法和構造器方法
}

@ApiModel 設置接口相關實體的描述



創建Controller

通過在控制器類上增加@Api注解,給控制器增加描述和標簽信息。

/***
* SpringBoot整合Swagger2
*/
@RestController
@RequestMapping("/user")
@Api(tags = "用戶相關接口", value = "提供用戶相關的 Rest API")
public class UserController {
/**
* 查找用戶
*
* @param id
* @return
*/
@ApiOperation(value = "查找用戶接口", notes = "根據用戶id查找用戶信息")
@GetMapping("/find/{id}")
public User findById(@ApiParam(name = "id", value = "用戶id", required = true)
@PathVariable("id")
int id) {
return new User(id, "小課", 18);
}
/**
* 刪除用戶信息
*
* @param id
* @return
*/
@ApiOperation(value = "刪除用戶接口", notes = "刪除用戶")
@DeleteMapping("/delete/{id}")
public String delete(@PathVariable("id") int id) {
return "刪除用戶id:" + id + "的用戶成功";
}
/**
* 更新用戶信息
*
* @param user
* @return
*/
@ApiOperation(value = "更新用戶接口", notes = "更新用戶")
@PutMapping("/update")
public String update(@RequestBody User user) {
return "更新用戶id:" + id + "的用戶成功";
}
/**
* 添加用戶
*
* @param user
* @return
*/
@ApiOperation(value = "新增用戶接口", notes = "新增用戶")
@PostMapping("/add")
public String addUser(@RequestBody User user) {
return "添加用戶id:" + id + "的用戶成功";
}
}

*@Api: 可設置對控制器的描述。



測試

我們啟動一下項目,然后在瀏覽器中訪問http://localhost:8080/swagger-ui.html 就可以看到如下的效果啦!



接口測試

點開查找用戶接口,點擊Tryit out,



輸入用戶id,然后點擊Execute



測試結果



這樣幾步我們就完成了,SpringBoot整合Swagger2的案例,相信大家都已經能夠體會到Swagger2對于程序員們的的便捷,趕緊動手實戰吧。

到這里我們Swagger2的內容就搞定了,恭喜你有Get了一個新技能。


標簽: springboot
熱門班型時間
人工智能就業班 即將爆滿
AI應用線上班 即將爆滿
UI設計全能班 即將爆滿
數據分析綜合班 即將爆滿
軟件開發全能班 爆滿開班
網絡安全運營班 爆滿開班
報名優惠
免費試聽
課程資料
官方微信
返回頂部
培訓課程 熱門話題 站內鏈接
精品欧美激情精品一区,亚洲自拍的二区三区,亚洲综合精品一区二区,国产伦精品一区二区三区视频免费
日韩av在线一区二区三区| 日本一区二区高清视频| 欧美一区2区三区4区公司二百 | 久久九九99视频| 亚洲人被黑人高潮完整版| 蜜桃91丨九色丨蝌蚪91桃色| 成人激情黄色小说| 久久er99热精品一区二区三区| 中文精品视频一区二区在线观看| 日韩亚洲电影在线| 亚洲婷婷综合色高清在线| 久久精品国产在热久久| www.一区二区三区| 色猫猫国产区一区二在线视频| 精品国产精品网麻豆系列| 亚洲与欧洲av电影| 成人妖精视频yjsp地址| 日韩成人av网站| 日韩美女在线视频| 亚洲国产cao| av不卡免费电影| 亚洲国产高清国产精品| 欧美zozozo| 婷婷成人激情在线网| 成人av集中营| 在线免费观看成人网| 久久这里只有精品视频网| 天天综合日日夜夜精品| 91pron在线| 色欧美乱欧美15图片| 欧美激情中文字幕一区二区| 日本强好片久久久久久aaa| 97久久夜色精品国产九色 | 午夜一区二区三区视频| 97久久人人超碰| 色94色欧美sute亚洲线路一久| 欧美国产日韩a欧美在线观看| 毛片av中文字幕一区二区| 国产欧美丝袜| 欧美一区二区在线视频| 午夜欧美2019年伦理| 91麻豆文化传媒在线观看| 91福利视频网站| 亚洲欧洲日韩在线| 岛国一区二区三区| 一本大道久久a久久综合婷婷 | 亚洲香肠在线观看| 91在线观看下载| 欧美亚洲一区二区在线观看| 亚洲人吸女人奶水| av成人免费在线| 欧美日韩高清一区二区| 亚洲在线一区二区三区| 99久久99| 日韩一区二区电影| 日本不卡免费在线视频| 久久免费视频1| 欧美精品一区二区三区久久久 | 综合婷婷亚洲小说| 成人免费毛片嘿嘿连载视频| 一本大道久久a久久精品综合| 亚洲色图欧洲色图婷婷| 97se亚洲国产综合自在线| 欧美色涩在线第一页| 亚洲小说春色综合另类电影| 国产区一区二区三区| 精品动漫一区二区三区在线观看| 久久国产日韩欧美精品| 亚洲高清视频一区二区| 亚洲三级电影网站| 3d动漫精品啪啪一区二区三区免费 | 自拍视频一区二区三区| 最新中文字幕一区二区三区| 91在线小视频| 欧美一三区三区四区免费在线看 | 91嫩草国产在线观看| 欧美一卡二卡在线观看| 蜜桃av噜噜一区二区三区小说| 日本一区二区精品视频| 亚洲婷婷综合色高清在线| yellow视频在线观看一区二区| 欧美一级黄色录像| 国产一区二区在线看| 在线一区二区三区| 天天综合网 天天综合色| 欧洲国产精品| 亚洲色图都市小说| 国产精品区一区二区三在线播放| 久久综合久久综合九色| 成人av网站在线观看免费| 欧美二区乱c少妇| 精品一区二区av| 欧美性猛交一区二区三区精品| 天天综合网 天天综合色| 亚洲二区三区四区| 亚洲高清不卡在线观看| 秋霞毛片久久久久久久久| 综合久久综合久久| 久久精品国产一区二区三区日韩 | 91麻豆精品国产无毒不卡在线观看| 蜜桃一区二区三区在线观看| 色综合激情五月| 丝袜亚洲精品中文字幕一区| 午夜精品短视频| 午夜激情一区二区三区| 亚洲精品一区二区毛豆| 亚洲va国产天堂va久久en| 亚洲精品视频一区二区三区| 午夜视频一区二区三区| 色综合久久综合网97色综合 | 国产精品久久夜| 国产乱码一区| 蜜桃传媒视频第一区入口在线看| 亚洲欧洲一区二区三区| 麻豆精品视频| 亚洲午夜久久久久中文字幕久| 色狠狠久久av五月综合|| 亚洲chinese男男1069| 在线免费观看一区二区三区| 免费成人在线网站| 91成人国产精品| 国模冰冰炮一区二区| 欧美一区二区三区日韩| eeuss鲁一区二区三区| 国产亚洲一区二区三区四区| 动漫一区二区在线| 亚洲欧美色图小说| 婷婷五月色综合| 蜜臂av日日欢夜夜爽一区| 精品视频一区三区九区| 国产成人aaa| 久久久久久久久久久久久久久99| 国产精品.com| 一区二区三区四区视频精品免费 | 日本欧美在线观看| 精品视频1区2区| 成人午夜电影久久影院| 国产三级欧美三级日产三级99| 国产乱码精品一区二区三区不卡| 亚洲精品欧美专区| 色哟哟亚洲精品| 国产精品一区二区视频| 精品99一区二区三区| 狠狠色噜噜狠狠色综合久| 一区二区三区av电影 | 日韩精品电影在线| 欧美剧在线免费观看网站 | 精品人伦一区二区色婷婷| 成人欧美一区二区三区在线观看| 亚洲人成伊人成综合网小说| 宅男噜噜99国产精品观看免费| 激情成人综合网| 久久久99免费| 区一区二区三区中文字幕| 久久不见久久见免费视频7| 日韩欧美中文字幕精品| 国产精品日韩一区二区| 亚洲成人tv网| 91精品国产入口| 国产精品久久久久久久久久久久冷| 一区二区不卡在线视频 午夜欧美不卡在| 日本丶国产丶欧美色综合| 国产91对白在线观看九色| 国产精品三级久久久久三级| 亚洲欧美日韩精品久久久| 国产精品69久久久久水密桃| 国产精品网曝门| 色综合婷婷久久| www.成人在线| 一区二区国产盗摄色噜噜| 欧美精品乱码久久久久久| 不卡的av一区| 日韩和欧美的一区| 精品国产乱码久久久久久久 | 91沈先生播放一区二区| 亚洲宅男天堂在线观看无病毒| 91精品国产综合久久久蜜臀图片| 国产精品9999久久久久仙踪林| 日韩电影免费在线观看网站| 精品久久99ma| 亚洲韩国在线| 波多野结衣在线一区| 一区二区三区成人在线视频| 91精品国产综合久久婷婷香蕉| 精品久久蜜桃| 激情久久五月天| 国产精品久久久久久久蜜臀| 欧美亚洲动漫制服丝袜| 国产91精品一区二区绿帽| 日本强好片久久久久久aaa| 国产欧美日本一区二区三区| 中文字幕久精品免| www.成人av.com| 老司机免费视频一区二区| 中文字幕av不卡| 欧美日韩中文字幕精品| 国产精品久久7| 国产揄拍国内精品对白| 亚洲美女区一区| 日韩欧美国产午夜精品|