springboot集成swagger3與knife4j的詳細(xì)代碼
springboot集成swagger3
swagger3的springboot啟動(dòng)器jar包
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency>
注意:當(dāng)前SpringBoot版本為2.5.6,Swagger3.0目前無法完全兼容SpringBoot2.6.x!
編寫TestController代碼
@RestController @RequestMapping("test") public class TestController { @GetMapping public Map<String, Object> get(@RequestParam String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } @PostMapping public Map<String, Object> post() { Map<String, Object> r = new HashMap<>(1); r.put("code", 200); return r; } @PutMapping public Map<String, Object> put(String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } @DeleteMapping public Map<String, Object> delete(String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } }
創(chuàng)建Swagger3Configuration
@Configuration @EnableOpenApi public class SwaggerConfig { private static final String VERSION = "0.0.1"; @Bean public Docket createRestApi() { return new Docket(DocumentationType.OAS_30) .groupName("分組名稱") .apiInfo(apiInfo()) .select() //要掃描的包 .apis(RequestHandlerSelectors.basePackage("com.example.swagger.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() // 設(shè)置標(biāo)題 .title("文檔標(biāo)題") //聯(lián)系人 .contact(contact()) //描述 .description("xxx文檔") //服務(wù) .termsOfServiceUrl("https://spring.io/") //許可證 .license("Apache 2.0") .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0") .version(VERSION) .build(); } private Contact contact (){ return new Contact("SpringBoot", "https://spring.io/", "email"); } }
運(yùn)行演示
訪問網(wǎng)址:http://127.0.0.1:8081/swagger-ui/index.html
對(duì)接口進(jìn)行注解
swagger中常用的注解
注解 | 作用 | 使用位置 |
---|---|---|
@Api | 表示對(duì)類的說明常用參數(shù) | 類 |
@ApiOperation | 說明方法的用途 | 方法 |
@ApiImplicitParams | 里面可以包含多個(gè)@ApiImplicitParam | 方法 |
@ApiImplicitParam | 描述參數(shù)的用途 | 方法 |
@ApiModel | 表示一個(gè)數(shù)據(jù)類的信息 | 類 |
@ApiModelProperty | 描述數(shù)據(jù)類的屬性 | 屬性 |
@ApiIgnore | 忽略某個(gè)字段使之不顯示在文檔中 | 屬性 |
接口基本使用
1.新建一個(gè)用戶實(shí)體類
@ApiModel("用戶") @Data public class User { @ApiModelProperty("用戶名") private String username; @ApiModelProperty("密碼") private String password; }
2.給TestController添加注解
@Api(tags = "測試接口") @RestController @RequestMapping("test") public class TestController { @ApiOperation("get請(qǐng)求") @GetMapping @ApiImplicitParam(name = "id", value = "測試用id", dataTypeClass = String.class) public Map<String, Object> get(@RequestParam String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } @ApiOperation("post請(qǐng)求") @PostMapping public Map<String, Object> post(@RequestBody User user) { Map<String, Object> r = new HashMap<>(1); r.put("code", 200); return r; } @ApiOperation("put請(qǐng)求") @PutMapping @ApiImplicitParam(name = "id", value = "put請(qǐng)求id", dataTypeClass = String.class) public Map<String, Object> put(String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } @ApiOperation("delete請(qǐng)求") @DeleteMapping @ApiImplicitParam(name = "id", value = "delete請(qǐng)求id", dataTypeClass = String.class) public Map<String, Object> delete(String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } }
運(yùn)行結(jié)果
集成更好的UI-knife4j
maven
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-micro-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
啟動(dòng)器
在SwaggerConfig類上添加**@EnableKnife4j**
@Configuration @EnableOpenApi @EnableKnife4j public class SwaggerConfig
訪問網(wǎng)站:http://127.0.0.1:8080/doc.html#/home
到此這篇關(guān)于springboot集成swagger3與knife4j的文章就介紹到這了,更多相關(guān)springboot集成swagger3內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Springboot3集成Knife4j的步驟以及使用(最完整版)
- SpringBoot?Knife4j框架&Knife4j的顯示內(nèi)容的配置方式
- SpringBoot與knife4j的整合使用過程
- springboot讀取bootstrap配置及knife4j版本兼容性問題及解決
- springboot3整合knife4j詳細(xì)圖文教程(swagger增強(qiáng))
- springboot整合knife4j全過程
- knife4j?整合?springboot的過程詳解
- SpringBoot中使用Knife4J的解決方案
- Springboot中整合knife4j接口文檔的過程詳解
- knife4j+springboot3.4異常無法正確展示文檔
相關(guān)文章
Java將時(shí)間按月份分段的實(shí)現(xiàn)思路與方法
這篇文章主要給大家介紹了關(guān)于Java將時(shí)間按月份分段的實(shí)現(xiàn)思路與方法,通過文中介紹的方法可以將時(shí)間分成我們想要的時(shí)間段,文中給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下2021-07-07maven配置多個(gè)鏡像的實(shí)現(xiàn)方法
這篇文章主要介紹了maven配置多個(gè)鏡像的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06MyBatis實(shí)現(xiàn)Mysql數(shù)據(jù)庫分庫分表操作和總結(jié)(推薦)
這篇文章主要介紹了MyBatis實(shí)現(xiàn)Mysql數(shù)據(jù)庫分庫分表操作和總結(jié),需要的朋友可以參考下2017-08-08