swagger的使用
依赖
<!-- swagger2-ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger2.version}</version>
</dependency>
<!-- swagger2-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
<scope>compile</scope>
</dependency>
swagger配置类
package cn.ant.common.config;
import com.google.common.base.Predicates;
import io.swagger.annotations.ApiOperation;
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Swagger2Configure {
@Bean
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("默认选项")
.apiInfo(webApiInfo())
.select()
//withMethodAnnotation使用ApiOperation这个注解的接口,才会生成文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
// 默认展示
private ApiInfo webApiInfo(){
return new ApiInfoBuilder()
.title("")
.description("网站微服务接口定义")
.version("1.0.0")
.contact(new Contact("百度一下", "http://baidu.com", "1172114335@qq.com"))
.build();
}
}
controller
package cn.ant.uc.controller;
import cn.ant.uc.entity.dto.UserDTO;
import cn.ant.uc.service.UserManagementService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @Version 1.0
* @Author:lss
* @Date:2021/11/5
* @Content:
*/
@Controller
@Slf4j
@RequestMapping("userManagement")
@Api(value = "UserManagementController", tags = "用户管理")
public class UserManagementController {
@Autowired
private UserManagementService userManagementService;
@GetMapping("hello")
@ResponseBody
@ApiOperation(value = "测试接口", notes = "测试接口")
public String hello() {
return "hello";
}
@PostMapping("login")
@ResponseBody
@ApiOperation(value = "登录接口", notes = "登录接口")
public String login(@RequestBody UserDTO userDTO) {
userManagementService.login(userDTO);
return "login";
}
@PostMapping("getToken")
@ResponseBody
@ApiOperation(value = "获取token", notes = "获取token")
public String getToken(HttpServletRequest request) {
return userManagementService.getToken(request);
}
/**
* 添加用户
*
* @param userDTO
* @return
*/
@PostMapping("addUser")
@ResponseBody
@ApiOperation(value = "添加用户", notes = "添加用户")
public Object addUser(@RequestBody UserDTO userDTO) {
return userManagementService.addUser(userDTO);
}
/**
* 编辑用户
*
* @param userDTO
* @return
*/
@PostMapping("editUser")
@ResponseBody
@ApiOperation(value = "编辑用户", notes = "编辑用户")
public Object editUser(@RequestBody UserDTO userDTO) {
return userManagementService.editUser(userDTO);
}
/**
* 分页查询用户
*
* @param userDTO
* @return
*/
@PostMapping("queryUser")
@ResponseBody
@ApiOperation(value = "分页查询", notes = "分页查询")
public Object queryUser(@RequestBody UserDTO userDTO) {
return userManagementService.queryUser(userDTO);
}
/**
* 删除用户
*
* @param userIdList
* @return
*/
@DeleteMapping("deleteUser")
@ResponseBody
@ApiOperation(value = "删除用户", notes = "删除用户")
public Object deleteUser(@RequestBody List<Integer> userIdList) {
return userManagementService.deleteUser(userIdList);
}
}
启动项目即可
注意事项
swagger生成重复的、多余的接口
如下图(下图来源于网络):
/**
* 删除用户
*
* @param userIdList
* @return
*/
@DeleteMapping("deleteUser")
@ResponseBody
@ApiOperation(value = "删除用户", tags = "删除用户")
public Object deleteUser(@RequestBody List<Integer> userIdList) {
return userManagementService.deleteUser(userIdList);
}
在swagger中生成的文档如下: