日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Spring Boot 使用 Swagger 構(gòu)建 RestAPI 接口文檔

瀏覽:67日期:2023-08-06 08:55:13

源碼地址:https://github.com/laolunsi/spring-boot-examples

目前SpringBoot常被用于開發(fā)Java Web應(yīng)用,特別是前后端分離項目。為方便前后端開發(fā)人員進行溝通,我們在SpringBoot引入了Swagger。

Swagger作用于接口,讓接口數(shù)據(jù)可視化,尤其適用于Restful APi

本節(jié)分兩部分介紹,第一部分是SpringBoot引入Swagger的兩種方式,第二部分是詳細介紹在Web接口上應(yīng)用Swagger的注解。

本篇文章使用SpringBoot 2.1.10.RELEASE和springfox-swagger 2.9.2

一、SpringBoot引入Swagger的兩種方式

目前SpringBoot有兩種使用Swagger的方式:

引入swagger原生依賴springfox-swagger2和springfox-swagger2-ui

引入國內(nèi)Spring4All社區(qū)開發(fā)的依賴swagger-spring-boot-starter

Spring4All出品的依賴采取配置文件的方式進行配置,而原生依賴是通過java config類來設(shè)置的。

1.1 原生配置Swagger

maven依賴:

<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version></dependency>

swagger配置類:

/** * swagger2配置類 */@Configuration@EnableSwagger2public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage('com.example')) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title('基于Swagger構(gòu)建的Rest API文檔') .description('更多請咨詢服務(wù)開發(fā)者eknown') .contact(new Contact('空夜', 'http://www.eknown.cn', 'eknown@163.com')) .termsOfServiceUrl('http://www.eknown.com') .version('1.0') .build(); }}

從這里可以看出Swagger的一個缺點:無法通過SpringBoot的配置文件進行配置,所以配置并不能靈活轉(zhuǎn)變。

spring4all社區(qū)出品的swagger-spring-boot-starter可以解決這個問題。

1.2 基于spring4all配置swagger

Spring4All社區(qū)的博主程序猿DD和小火兩個人開發(fā)了Spring Boot Starter Swagger,目前已經(jīng)在maven官方倉庫上線了。

Spring Boot 使用 Swagger 構(gòu)建 RestAPI 接口文檔

選擇第一個,引入該依賴:

<dependency> <groupId>com.spring4all</groupId> <artifactId>swagger-spring-boot-starter</artifactId> <version>1.9.0.RELEASE</version></dependency>

這種方式的Swagger配置是通過application配置文件進行的。下面給出一個示例:

server: port: 8106swagger: base-path: /** base-package: ’com.example’ title: ’spring-boot-swagger-demo’ description: ’基于Swagger構(gòu)建的SpringBoot RESTApi 文檔’ version: ’1.0’ contact: name: ’空夜’ url: ’http://www.eknown.cn’ email: ’eknown@163.com’

二、應(yīng)用Swagger構(gòu)建接口可視化

2.1 Controller類添加Swagger注解

下面給一個簡單的示例:

@Api(tags = '用戶管理')@RestController@RequestMapping(value = 'user')public class UserController { // 模擬數(shù)據(jù)庫存儲的用戶 private static Map<Integer, User> userMap; static { userMap = new ConcurrentHashMap<>(); User user = new User(0, 'admin', true, new Date()); userMap.put(user.getId(), user); } @ApiOperation('列表查詢') @GetMapping(value = '') public List<User> list() { return new ArrayList<>(userMap.values()); } @ApiOperation(value = '獲取用戶詳細信息', notes = '路徑參數(shù)ID') @GetMapping(value = '{id}') public User detail(@PathVariable Integer id) { return userMap.get(id); } @ApiOperation(value = '新增或更新用戶信息', notes = 'insert和update共用' , response = User.class) @PostMapping(value = '') public User add(@RequestBody User user) { if (user == null || user.getId() == null || !StringUtils.isEmpty(user.getName()) || userMap.containsKey(user.getId())) { return null; } user.setUpdateTime(new Date()); userMap.put(user.getId(), user); return user; } @ApiOperation(value = '刪除用戶') @DeleteMapping(value = '{id}') public Boolean delete(@ApiParam(name = '用戶ID', required = true, example = '100') @PathVariable Integer id) { if (userMap.containsKey(id)) { userMap.remove(id); return true; } return false; }}

2.2 參數(shù)實體類添加Swagger注解

實體類也需要添加一些注解,以便前端開發(fā)人員確定參數(shù)的意義、類型、示例等。

@ApiModel(description = '用戶類')public class User { @ApiModelProperty(value = 'ID', example = '100') private Integer id; @ApiModelProperty(value = '姓名', example = 'laolunsi') private String name; @ApiModelProperty(value = '是否啟用', example = '1') private Boolean enable; @ApiModelProperty('更新時間') private Date updateTime; public User(Integer id, String name, Boolean enable, Date updateTime) { this.id = id; this.name = name; this.enable = enable; this.updateTime = updateTime; } // ... ignore getter and setter methods}

2.3 測試

啟動項目,訪問http://localhost:port/swagger-ui.html

如果存在server.servlet.context-path配置,那么訪問地址是http://localhost:port/context-path/swagger-ui.html

Spring Boot 使用 Swagger 構(gòu)建 RestAPI 接口文檔

這樣,接口就一目了然了,swagger還支持在線測試接口,與postman的作用類似。

好,到目前為止,我們已經(jīng)成功在SpringBoot項目中整合了Swagger,這樣前后端開發(fā)對接就有了標準!

以上就是Spring Boot 使用 Swagger 構(gòu)建 RestAPI 接口文檔的詳細內(nèi)容,更多關(guān)于Spring Boot 整合 Swagger的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
天堂av在线| 亚洲精品看片| 一本色道久久精品| 免费看一区二区三区| 国产精品外国| 天堂中文av在线资源库| 老司机免费视频一区二区| 日韩在线成人| 亚洲精品福利| 成人亚洲精品| 91福利精品在线观看| 中文日韩欧美| 国产在线欧美| 久久激情一区| 极品日韩av| 性欧美videohd高精| 粉嫩av一区二区三区四区五区| 国产视频网站一区二区三区| 香蕉久久国产| 国产亚洲亚洲| 国产精品美女| 三级欧美在线一区| 性一交一乱一区二区洋洋av| 亚洲一区免费| 亚洲欧美日韩国产一区| 亚洲一级高清| 欧美手机在线| 香蕉精品视频在线观看| 日韩精品免费一区二区三区| 91看片一区| 91视频一区| 综合日韩av| 日韩综合精品| 精品亚洲美女网站| 欧美/亚洲一区| 亚洲一区欧美二区| 伊人久久婷婷| 免费观看日韩电影| 免费成人在线影院| 日韩精品乱码av一区二区| 日韩精品久久久久久久软件91| 少妇精品在线| 你懂的国产精品| 日韩免费看片| 最新日韩av| 蜜臀va亚洲va欧美va天堂| 热久久免费视频| 国产欧美一区二区三区精品观看 | 欧美精品国产一区| 国产欧美日韩精品高清二区综合区 | 亚洲一区二区三区四区五区午夜 | 91av亚洲| 久久一级电影| 香蕉国产精品| 丝袜美腿成人在线| 7777精品| 高潮一区二区| 91久久中文| 国产日本久久| 久久精品国产亚洲aⅴ| 天堂√8在线中文| 红桃视频国产精品| 日韩av网站在线免费观看| 日韩精品一区二区三区av| 国产欧美精品| 日本一区二区高清不卡| 久久黄色影院| 亚洲精品字幕| 精品国产欧美| 亚洲经典在线| 中文字幕一区二区三区在线视频| 国产精品综合色区在线观看| 国产在线一区不卡| 欧美jjzz| 久久国产生活片100| 国内激情久久| 精品国产精品国产偷麻豆| 中文字幕日本一区| 欧美aa国产视频| 黄色在线观看www| 99国产精品久久久久久久成人热| 久久青青视频| 国产在线欧美| 日韩不卡免费高清视频| 亚洲精品福利| 日韩和欧美一区二区| 免费一级欧美在线观看视频 | 免费在线播放第一区高清av| 亚洲综合中文| 亚洲男女av一区二区| 国产成人1区| 国产欧美日韩影院| 老鸭窝亚洲一区二区三区| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 99久久精品费精品国产| 国产aⅴ精品一区二区四区| 国产日韩在线观看视频| 日韩有吗在线观看| 99国产成+人+综合+亚洲欧美| 欧美一区久久久| 激情综合五月| 欧美aa在线视频| 亚州国产精品| 在线精品一区二区| 国产精品黑丝在线播放| 日韩超碰人人爽人人做人人添| 99re国产精品| 午夜av一区| 婷婷综合五月| 欧美日韩日本国产亚洲在线| 91精品婷婷色在线观看| 鲁鲁在线中文| 国产不卡av一区二区| 国产精品一区二区三区av| 日韩国产欧美三级| 婷婷综合电影| 欧美亚洲一级| 国产日韩欧美三区| 国产视频一区二| 国产欧美日韩精品一区二区三区| 欧美亚洲tv| 国产精品99精品一区二区三区∴ | 国产精品亚洲产品| 日本三级亚洲精品| 婷婷亚洲精品| 97久久超碰| 国产亚洲久久| 国产精品亚洲综合在线观看| 国产乱码精品一区二区亚洲| 国产精品成人**免费视频 | 国产精品一区二区精品视频观看 | 日韩精品久久理论片| 日本va欧美va精品发布| 麻豆国产欧美一区二区三区| 久久亚洲道色| 国产不卡精品在线| 国产成人久久精品一区二区三区| 久久精品国产99国产| 国产一区一一区高清不卡| 精品国产亚洲一区二区三区大结局| 欧美国产另类| 麻豆视频在线看| 亚洲五月婷婷| 中文字幕乱码亚洲无线精品一区| 偷拍亚洲精品| 欧美国产另类| 在线看片国产福利你懂的| 香蕉精品久久| 四虎在线精品| 欧美a在线观看| 亚洲不卡系列| 欧美在线网站| 亚洲精品极品| 麻豆91精品91久久久的内涵| 极品av在线| 欧美1区2区3区| 日韩区一区二| 精品视频97| 亚洲成人免费| 欧美永久精品| av综合电影网站| 午夜在线视频观看日韩17c| 国产视频一区二区在线播放| 丁香六月综合| 玖玖玖国产精品| 老司机精品在线| 国产亚洲一区二区手机在线观看| 天使萌一区二区三区免费观看| 国产日韩三级| 亚洲福利精品| 91成人精品观看| 91精品国产成人观看| 日韩精品一页| 97se综合| 日本午夜精品一区二区三区电影 | 欧美日韩少妇| 日韩不卡一区二区| 桃色一区二区| 日韩激情中文字幕| 性色av一区二区怡红| 国产精品a久久久久| 午夜av一区| 欧美精品不卡| 免费日韩av片| 成人在线免费观看91| 丝袜美腿亚洲色图| 国产精品久久久久久久久妇女| 亚洲少妇自拍| 国产一区二区三区天码| 爽爽淫人综合网网站| 国产精品久久久亚洲一区| 久久男人av资源站| 91伊人久久| 婷婷综合亚洲| 国产中文字幕一区二区三区| 蜜臀av一区二区在线免费观看| 精品三级在线观看视频| 蜜桃视频一区二区三区在线观看| 欧美gv在线| 久久中文字幕一区二区三区|