Spring Boot (七) 整合Swagger
阿新 • • 發佈:2019-03-08
版本:jdk1.7 springboot1.4.7
引入pom檔案:
<!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.5.0</version> </dependency> <!-- swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.5.0</version> </dependency>
設定swagger工具類:
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.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * SwaggerConfig */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.siyuan.app.h5.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("springboot利用swagger構建api文件") .description("簡單優雅的restfun風格") .termsOfServiceUrl("") .version("1.0") .build(); } }
spring boot開啟swagger
@SpringBootApplication //spring boot啟動 @EnableScheduling //定時任務 @MapperScan(basePackages = {"com.siyuan.app.h5.dao"}) //掃描mybatis dao 介面 @EnableSwagger2 //開啟swagger public class StartApp { public static void main(String[] args) { SpringApplication.run(StartApp.class, args); } }
Controller類:
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.siyuan.app.h5.model.UserModel;
import com.siyuan.app.h5.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@RestController
@RequestMapping("app/")
@Api("app測試類")
public class DemoController {
@Autowired
private UserService userService;
@RequestMapping("test")
@ResponseBody
@ApiOperation(value="查詢使用者", notes="某某是需要必填")
public List<String> inde(){
List<String> list = new ArrayList<String>();
List<UserModel> userList = userService.getUesrs();
for (UserModel user : userList) {
list.add(user.getName());
}
return list;
}
}
執行:
http://localhost:9999/swagger-ui.html
介面:
Swagger常用註解介紹:
@Api()用於類;
表示標識這個類是swagger的資源
- @ApiOperation()用於方法;
表示一個http請求的操作
- @ApiParam()用於方法,引數,欄位說明;
表示對引數的新增元資料(說明或是否必填等)
- @ApiModel()用於類
表示對類進行說明,用於引數用實體類接收
- @ApiModelProperty()用於方法,欄位
表示對model屬性的說明或者資料操作更改
- @ApiIgnore()用於類,方法,方法引數
表示這個方法或者類被忽略
- @ApiImplicitParam() 用於方法
表示單獨的請求引數
- @ApiImplicitParams() 用於方法,包含多個 @ApiImplicitParam
做技術最難能可貴的就是持續的學習,吸收知識,不斷的思考形成自己的理解和模式。 進群qq:600