13. SpringBoot-swagger
13.1 匯入相關依賴
<dependencies>
<!-- springfox-boot-starter
配置類上使用的開啟注解為:@EnableOpenApi
訪問路徑:http://localhost:8080/swagger-ui/index.html
-->
<!--<dependency>-->
<!--<groupId>io.springfox</groupId>-->
<!--<artifactId>springfox-boot-starter</artifactId>-->
<!--<version>3.0.0</version>-->
<!--</dependency>-->
<!-- springfox-swagger-ui springfox-swagger2
springboot2.6.0版本不兼容 這里使用的是SpringBoot2.5.6版本
使用的注解為:@EnableSwagger2
訪問路徑:http://localhost:8080/swagger-ui.html
-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
13.2 撰寫Swagger配置類
檔案路徑:com--dzj-config--SwaggerConfig.java
@Configuration
@EnableSwagger2 //開啟Swagger2
public class SwaggerConfig {
// 配置swagger Docket的bean實體,可以配置多個
@Bean
public Docket docket(Environment environment) {
//設定要顯示的swagger環境
Profiles profiles = Profiles.of("dev", "test");
//通過environment.acceptsProfiles()判斷當前環境是否處于設定的環境中
boolean flag = environment.acceptsProfiles(profiles);
System.out.println("當前測驗環境--->" + flag);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(flag) //是否啟動Swagger,默認為true
.groupName("dengzj")
.select()
/*
RequestHandlerSelectors,配置要掃描介面的方式
basePackage("com.dzj.controller"):指定要掃描的包
any():掃描所有
none():不掃描
withClassAnnotation(GetMapping.class):掃描類上的注解
withMethodAnnotation(GetMapping.class):掃描方法上的注解
*/
.apis(RequestHandlerSelectors.basePackage("com.dzj.controller"))
//paths(PathSelectors.ant("/dzj/**")) 過濾請求的路徑
//.paths(PathSelectors.ant("/hello/**"))
.build();
}
//配置Swagger資訊,apiInfo
private ApiInfo apiInfo() {
Contact contact = new Contact("dengzj", "https://www.cnblogs.com/aadzj/", "[email protected]");
return new ApiInfo(
"Dengzj的SwaggerApi檔案",
"認真卻不慫",
"v1.0",
"https://www.cnblogs.com/aadzj/",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
@Bean
public Docket docket1() {
return new Docket(DocumentationType.SWAGGER_2).groupName("A");
}
@Bean
public Docket docket2() {
return new Docket(DocumentationType.SWAGGER_2).groupName("B");
}
@Bean
public Docket docket3() {
return new Docket(DocumentationType.SWAGGER_2).groupName("C");
}
}
13.3 撰寫物體類
檔案位置:com--dzj--pojo--User.java
@ApiModel("用戶物體類") //注釋
public class User {
@ApiModelProperty("用戶名") //注釋
public String username;
@ApiModelProperty("密碼") //注釋
public String password;
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
}
13.4 撰寫測驗介面
檔案位置:com--dzj--controller-HelloController.java
@Api(tags = "hello控制類") //注釋類名
@RestController
public class HelloController {
@ApiOperation("hello介面") //注釋介面名
@GetMapping(value = "https://www.cnblogs.com/testHello")
public String testHello() {
return "hello";
}
// 只要我們介面中的回傳值有物體類,它就會被掃描到swagger中
@ApiOperation("掃描物體類測驗介面")
@PostMapping("/testUser")
public User testUser() {
return new User();
}
@ApiOperation("測驗testRestful介面")
@GetMapping("/testRestful/{username}")
public String testRestful(@ApiParam("用戶名") @PathVariable("username") String username) {
return "username:" + username;
}
@ApiOperation("測驗testPost介面")
@PostMapping("/testPost")
public User testPost(User user) {
return user;
}
}
13.5 撰寫組態檔
-
application.properties
spring.profiles.active=dev -
application-dev.properties
-
application-pro.properties
-
application-test.properties
13.6 訪問測驗
訪問路徑:http://localhost:8080/swagger-ui.html

介面以及物體類資訊

本文來自博客園,作者:小公羊,轉載請注明原文鏈接:https://www.cnblogs.com/aadzj/p/15636826.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/382171.html
標籤:Java
