SpringBoot和swagger2整合
阿新 • • 發佈:2018-12-15
SpringBoot和swagger2整合學習記錄
一.引入swagger2相關依賴
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId >springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
二.加入swagger2配置類
package spring.boot.base.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox. documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("spring.boot"))
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("janis Manage Swagger RESTful APIs")
.description("自我整合最強大 Swagger API 服務")
.termsOfServiceUrl("http://swagger.io/")
.contact(new Contact("janis", "127.0.0.1", "[email protected]"))
.version("1.0")
.build();
}
}
此處需要更改basePackage(“spring.boot”).
"spring.boot"是我專案中的基包,只有更換成你當前專案的基包時,啟動在啟動的時候才能對該包下進行掃描查詢swagger的註解,將介面類和介面方法生成API,展示在swagger-ui頁面上;
三.啟動類處配置swagger註解
package spring.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* 基礎模組的啟動類
* @author pengchen
* @date 2018-12-02:下午 9:57
*/
@SpringBootApplication
@EnableSwagger2
public class BaseApplication {
public static void main(String[] args) {
SpringApplication.run(BaseApplication.class);
}
}
此處新增的註解@EnableSwagger2
四.controller類和方法加入swagger註解
package spring.boot.web.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import spring.boot.dto.ResultDTO;
import spring.boot.dto.StatusCode;
import spring.boot.po.Label;
import spring.boot.service.LabelService;
import java.util.List;
/**
* @author pengchen
* @date 2018-12-08:下午 4:45
*/
@Api("標籤")
@RestController
@RequestMapping("label")
public class LabelController {
@Autowired
private LabelService labelService;
/**
* 新增一個
* @param label
* @return
*/
@ApiOperation("新增一個標籤")
@PostMapping
public ResultDTO add(@RequestBody Label label){
labelService.saveLabel(label);
return new ResultDTO(true,StatusCode.OK,"新增成功",null);
}
@Api:
作用在類上,用來標註該類具體實現內容。表示標識這個類是swagger的資源 。
引數:
- tags:可以使用tags()允許您為操作設定多個標籤的屬性,而不是使用該屬性。
- description:可描述描述該類作用。
@ApiOperation:
用於方法,表示一個http請求的操作 。