1.导入swagger的依赖包
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2.配置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;
/**
* Swagger的配置类
*/
@Configuration //配置类
@EnableSwagger2 //支持Swagger2
public class SwaggerConfig {
@Bean
public Docket createDocket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) //创建该api的基本信息(这些信息会显示在文档页面中)
.select() //函数返回一个ApiSelectorBuilder实例,用来控制那些借口暴露给Swagger-ui来显示
.apis(RequestHandlerSelectors.basePackage("com.web.controller")) //指定需要扫描的包路径
.paths(PathSelectors.any())
.build()
.enable(true); //设置开关
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("SpringBoot项目")
.description("实现增删改查")
.version("1.0")
.build();
}
}
3.在controller和vo添加相应注解
import com.entity.SysUser;
import com.service.SysUserService;
import com.vo.req.RegisterSysUserReqVo;
import com.vo.req.UpdateSysUserReqVo;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/test")
@Api(tags = "用户模块") //@Api注解可以解释该模块的功能
public class UserController {
@Autowired
private SysUserService sysUserService;
@PostMapping("/user")
@ApiOperation(value = "用户注册接口") //@ApiOperation注解解释该接口的功能
@ApiResponses({ //返回的状态码等信息
@ApiResponse(code = 200, message = "响应成功", response = SysUser.class),
@ApiResponse(code = 404, message = "服务器访问失败")
})
//@ApiParam解释该参数的意思
public String register(@ApiParam(value = "用户注册封装的信息") @RequestBody RegisterSysUserReqVo vo){
return sysUserService.registerSysUser(vo);
}
@PutMapping("/user")
@ApiOperation(value = "更新用户接口")
@ApiResponses({
@ApiResponse(code = 200, message = "响应成功", response = SysUser.class),
@ApiResponse(code = 404, message = "服务器访问失败")
})
public String update(@ApiParam(value = "更新用户封装的信息") @RequestBody UpdateSysUserReqVo vo){
return sysUserService.updateSysUser(vo);
}
@ApiResponses({
@ApiResponse(code = 200, message = "响应成功", response = SysUser.class),
@ApiResponse(code = 404, message = "服务器访问失败")
})
@DeleteMapping("/user/{id}")
@ApiOperation(value = "Restful风格的删除用户信息接口")
public String delete(@ApiParam(value = "被删除用户的id", required = true) @PathVariable("id") String id){
return sysUserService.deleteSysUser(id);
}
}
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
//@ApiModel解释该vo的信息
@ApiModel(value = "com.vo.req.RegisterSysUserReqVo", description = "用户注册的信息")
public class RegisterSysUserReqVo {
@ApiModelProperty(value = "用户名") //解释该字段的意思
private String username;
@ApiModelProperty("密码")
private String password;
@ApiModelProperty("手机号码")
private String phone;
@ApiModelProperty("邮箱")
private String email;
@ApiModelProperty("性别")
private String sex;
}
4.运行后的swagger页面
运行后在浏览器输入:http://localhost:8080/swagger-ui.html#/
最后类似于这个页面
版权声明:本文为weixin_44234016原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。