如果餓了就喫,困了就睡,渴了就喝,人生就太無趣了
源碼地址:https://github.com/keer123456789/springbootstudy/tree/master/swaggerdemo
1 介紹
最近在工作中接觸到了swagger
API工具,這個真的是太美好了,之前就想找一個這個API工具,對於API很多的項目,這個簡直就是提高開發效率,節省文檔。
2 maven依賴
<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>
3 編輯Swagger配置
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//需要掃描的API(controller)包名
.apis(RequestHandlerSelectors.basePackage("com.keer.swaggerdemo.controller"))
.paths(PathSelectors.any())
.build();
}
/**
* 網頁上的一些配置,標題,版本等等
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swaager Demo Rest API")
.contact("可耳")
.version("v1.0")
.build();
}
}
4 創建Controller
主要是介紹Swagger,這個工具主要是在controller層進行管理,就不在添加Service和Dao層的邏輯。
4.1 添加類註解
@API
用來描述這個Controller的功能。
@RestController
@Api(tags = "swagger demo API info")
public class Controller {}
4.2方法註解
@ApiOperation
: 描述這個方法的功能@ApiImplicitParam
:對如參的解釋,name:參數名稱,value:參數描述,required:是否必須,dataType:參數類型
@RestController
@Api(tags = "swagger demo API info")
public class Controller {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@PostMapping("/postTest")
@ApiOperation(value = "post method,data is json", notes = "輸入用戶信息")
@ApiImplicitParam(name = "user", value = "用戶實體", required = true, dataType = "User")
public String postMethod(@RequestBody User user) {
logger.info("接收到post請求:" + user.toString());
return "傳來數據: " + user.toString();
}
@GetMapping("/getTest")
@ApiOperation(value = "get method")
public String getMethod() {
logger.info("接收到get請求");
return "Swagger demo test for keer";
}
}
5 頁面展示
訪問:http://127.0.0.1:8080/swagger-ui.html
頁面如下:標註起來的都是在配置信息時編輯好的
點擊Swagger demo API Info
,就會看到全部方法:
分別點擊相應的方法,填入需要的參數,點擊try it out
按鈕即可調用此方法
如圖post方法: