springboot專案整合Swagger2
阿新 • • 發佈:2019-01-22
不僅僅是springboot,其他spring專案均可整合swagger,在專案開發中,眾多的介面都要有介面文件,並且很容易出現紕漏和程式碼與文件不一致的情況,利用swagger來自動生成api文件,讓程式碼維護與文件維護保持一致,大大減少文件編寫和維護的工作量,並且swagger2還提供了強大的頁面測試功能來除錯每個RESTful API。
1.加入jar包依賴
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId >springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
2.建立swagger2配置類
通過 @Configuration 註解,讓Spring來載入該類配置。再通過 @EnableSwagger2 註解來啟用Swagger2。本例採用指定掃描的包路徑來定義,Swagger會掃描該包下所有Controller定義的API,併產生文件內容(除了被 @ApiIgnore 指定的請求)。
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.nio.exam" ))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot中使用Swagger2構建RESTful APIs")
.description("這是一個description")
.termsOfServiceUrl("http://blog.csdn.net/innerpeacescorpio")
.contact("jingling")
.version("1.0")
.build();
}
}
3.編寫介面配置自定義的文件內容
@RestController
@RequestMapping(value="/test")
public class SwaggerTestController {
@ApiOperation(value="測試介面", notes="測試介面詳細描述")
@RequestMapping(value="/id", method=RequestMethod.PUT)
public String doSomething(@ApiParam(required=true, name="channelId", value="渠道ID") @RequestParam Integer channelId,
@ApiParam(required=true, name="operator", value="操作人") @RequestParam String operator,
@ApiParam(required=true, name="map", value="引數") @RequestParam Map<String, Object> map){
return "hello";
}
}