一、添加依赖
pom.xml增加
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.3</version>
</dependency>
二、swagger配置类
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("demo")
.host("请参考接口文档说明")
//隐藏状态码
.useDefaultResponseMessages(false)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo"))
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("接口文档")
.contact(new Contact("meng","",""))
.description("使用Swagger2构建RESTful API")
.version("1.0").build();
}
}
三、接口实例
UserController.java
@Api(value = "用户操作", tags = "用户操作")
@RestController
@RequestMapping("user")
public class UserController {
@PostMapping("")
@ApiOperation(position = 1, value = "添加用户", tags = "用户操作")
public UserResponse addUser(@RequestBody UserRequest request){
UserResponse response = new UserResponse();
response.setId(1);
response.setName(request.getName());
response.setAge(request.getAge());
return response;
}
}
UserRequest.java
@ApiModel(value = "用户信息入参")
public class UserRequest {
@ApiModelProperty(value = "姓名",dataType = "String",required = true,example = "小张",position = 1)
private String name;
@ApiModelProperty(value = "年龄",dataType = "Number",required = true,example = "18",position = 2)
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
UserResponse.java
@ApiModel(value = "用户信息返参")
public class UserResponse {
@ApiModelProperty(value = "ID",dataType = "Number",required = true,example = "1",position = 1)
private Integer id;
@ApiModelProperty(value = "姓名",dataType = "String",required = true,example = "小张",position = 2)
private String name;
@ApiModelProperty(value = "年龄",dataType = "Number",required = true,example = "18",position = 3)
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
结构如图:
四、swagger页面
项目启动,访问http://localhost:8080/doc.html,效果如图: