首先启动一个springboot的项目:
配置pow.xml,在maven里面添加依赖
<!--springboot之swaager的配置 start-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
<!--springboot之swaager的配置 end-->
编写swagger2的配置类:SwaggerConfig
package com.swaager.swaagerdemo.utils;
/**
* @authorseerhuitao 配置信息类
* @create2019/6/13
*/
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;
/**
* @author shengwu ni
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
// 指定构建api文档的详细信息的方法:apiInfo()
.apiInfo(apiInfo())
.select()
// 指定要生成api接口的包路径,这里把controller作为包路径,生成controller中的所有接口
.apis(RequestHandlerSelectors.basePackage("com.swaager.swaagerdemo.Cotroller"))
.paths(PathSelectors.any())
.build();
}
/**
* 构建api文档的详细信息
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// 设置页面标题
.title("Spring Boot集成Swagger2接口总览")
// 设置接口描述
.description("数据挖掘springboot配置swaager")
// 设置联系方式
.contact("恵涛:" + "https://blog.csdn.net/chehec2010")
// 设置版本
.version("1.0")
// 构建
.build();
}
}
启动springboot查看一下效果:输入地址
localhost:8080/swagger-ui.html
下一步编写实体类:User
package com.swaager.swaagerdemo.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @authorseerhuitao 影虎描述
* @create2019/6/13
*/
@ApiModel(value = "用户实体类")
public class User {
@ApiModelProperty(value = "用户唯一标识")
private int id;
@ApiModelProperty(value = "用户的名字")
private String name;
@ApiModelProperty(value = "用户的密码")
private String passWord;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
编写指定的Cotroller类:
package com.swaager.swaagerdemo.Cotroller;
import com.swaager.swaagerdemo.model.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @authorseerhuitao 接口控制类
* @create2019/6/13
*/
@RestController
@RequestMapping("/user")
@Api(value = "swagger的在线文档")
public class SwCotroller {
@GetMapping("/get/{id}")
@ApiOperation(value = "根据用户唯一标识获取用户信息")
public User getInfor(@PathVariable @ApiParam(value = "用户唯一标识")int id){
User user = new User();
user.setId(id);
user.setName("huitao");
user.setPassWord("123456");
return user;
}
}
再次输入地址:http://localhost:8080/swagger-ui.html
总结说明:
@ApiModel
注解用于实体类,表示对类进行说明,用于参数用实体类接收。@ApiModelProperty
注解用于类中属性,表示对 Model 属性的说明或者数据操作更改。@Api
注解用于类上,表示标识这个类是 Swagger 的资源。@ApiOperation
注解用于方法,表示一个 HTTP 请求的操作。@ApiParam
注解用于参数上,用来标明参数信息。