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 = "測(cè)試接口")
@RestController
@RequestMapping("test")
public class TestController {
@ApiOperation("get請(qǐng)求")
@GetMapping
@ApiImplicitParam(name = "id", value = "測(cè)試用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-07
maven配置多個(gè)鏡像的實(shí)現(xiàn)方法
這篇文章主要介紹了maven配置多個(gè)鏡像的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
MyBatis實(shí)現(xiàn)Mysql數(shù)據(jù)庫分庫分表操作和總結(jié)(推薦)
這篇文章主要介紹了MyBatis實(shí)現(xiàn)Mysql數(shù)據(jù)庫分庫分表操作和總結(jié),需要的朋友可以參考下2017-08-08

