swagger简单使用

Swagger与springBoot集成

1.导入相关依赖

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.9.2</version>
		</dependency>

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.9.2</version>
		</dependency>

2.配置Swagger==>Config

@Configuration
@EnableSwagger2
public class SwaggerConfig {
	

}

3.访问http://localhost:8080/swagger-ui.html
swagger简单使用_第1张图片

配置Swagger

需要通过Swagger提供的Docket实例修改信息

@Configuration
@EnableSwagger2
public class SwaggerConfig {
	
	//配置了Swagger的Docket实例
	@Bean
	public Docket docket() {
		
		return new Docket(DocumentationType.SWAGGER_2)
				.apiInfo(aipInfo());
	}
	
	
	
	
	private ApiInfo aipInfo() {
		
		//作者信息   姓名,网站,邮箱
		Contact contact = new Contact("huruochen", "abcdefg", "[email protected]");

	return new ApiInfo
			("我的SwaggerAPI文档", "即使再小的帆也能远航", "9.9", "https://www.baidu.com",
					contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList<VendorExtension>());
	}
	
	
	
	
}

配置扫描接口和开关

默认swagger开启,全局扫描

	//配置了Swagger的Docket实例
	//enable是否启用swagger
	@Bean
	public Docket docket() {
		
		return new Docket(DocumentationType.SWAGGER_2)
				.apiInfo(aipInfo())
				.select()
				//RequestHandlerSelectors配置要扫描接口的方式
				//basePackage指定要扫描的包
				.apis(RequestHandlerSelectors.basePackage("com.atguigu.swagger"))
				//paths()过滤什么路径
				//.paths(PathSelectors.ant("/com/atguigu"))
				.build();//build工厂模式
	}

分组和接口注释

配置多个组

@Bean
	public Docket docket_order() {
		
		return new Docket(DocumentationType.SWAGGER_2)
				.apiInfo(aipInfo())
				.groupName("order")
				.select()
				.apis(RequestHandlerSelectors.basePackage("com.atguigu.swaggerOrder"))
				.build();
	}
	
	
	@Bean
	public Docket docket_project() {
		
		return new Docket(DocumentationType.SWAGGER_2)
				.apiInfo(aipInfo())
				.groupName("project")
				.select()
				.apis(RequestHandlerSelectors.basePackage("com.atguigu.swaggerProject"))
				.build();
	}
	
	@Bean
	public Docket docket() {
		
		return new Docket(DocumentationType.SWAGGER_2)
				.apiInfo(aipInfo())
				.groupName("user")
				.select()
				.apis(RequestHandlerSelectors.basePackage("com.atguigu.swagger"))
				.build();
	}

主要注解

@Api
说明每个controller层控制类的作用,即每个请求类
属性:tags:描述该类的作用
@ApiOperation
作用在控制类中的每个方法上,说明该类的作用
属性:value:说明该类的作用
@ApiParam
作用于请求方法上,定义api参数的注解,
属性:
name:api参数的英文名
value:api参数的描述
required:true表示参数必输,false标识参数非必输,默认为非必输

@Api(tags="这是关于hello的Controller,是Api注解")
@RestController
public class HelloController {

	// 一个项目一定会有一个/erro请求
	@ApiOperation("这是一个hello控制方法,是ApiOperation注解")
	@GetMapping("/hello")
	public String hello() {

		return "hello";
	}

	@ApiOperation("这是一个user控制方法,是ApiOperation注解")
	@GetMapping("/user")
	public User user() {

		return new User();
	}

	@ApiOperation("这是一个dept控制方法,是ApiOperation注解")
	@GetMapping("/dept")
	public Dept dept(@ApiParam("dept的部门名,是ApiParam注解") String dname) {

		return new Dept();
	}

}

swagger简单使用_第2张图片

@ApiModel()
用于实体类,这实体类必须在Controller中作为返回对象才会在Swagger-ui中显示,
value–表示对象名
description–描述
@ApiModelProperty()
表示对model属性的说明或者数据操作更改 ,private的属性不显示
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏

@ApiModel("用户模块")
public class User {
	
	
	@ApiModelProperty("用户名")
	public String username;
	
	@ApiModelProperty("密码")
	public String password;
	

}

swagger简单使用_第3张图片

你可能感兴趣的:(swagger简单使用)