1. 程式人生 > >Spring Boot (七) 整合Swagger

Spring Boot (七) 整合Swagger

開發十年,就只剩下這套架構體系了! >>>   

版本: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