- 配置pom.xml
<!-- swagger生成接口API -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<!-- 接口API生成html文档 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
- Swagger2配置类
//和Application在一个包
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;
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.yjy.user"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("用户管理RESTful APIs")
.description("请关注:http://XXXX.com/")
.termsOfServiceUrl("http://xxxx.com/")
.version("1.0")
.build();
}
}
- 下载Swagger UI
路径https://github.com/swagger-api/swagger-ui
把dist文件复制到static下面,重名为api,修改index.html其中
url: “http://localhost:9090/v2/api-docs”,
访问路径为http://localhost:9090/api/index.html
- Controller配置
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
@RestController
@RequestMapping("/user")
@Api(tags="用户相关API")
public class UserController extends BaseController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
@ApiOperation(value="获取所有用户列表")
@PreAuthorize("hasRole('ADMIN')")
@RequestMapping(value = "/getAllUsers",method = RequestMethod.GET)
public Object getAllUsers(){
return new ResponseData(ExceptionMsg.SUCCESS,userService.getAllUsers());
}
@ApiOperation(value="创建用户", notes="根据User对象创建用户,其中username、password、active为必填项")
@ApiImplicitParam(name = "user", value = "用户实体user", required = true, dataType = "User")
@RequestMapping(value = "/addUser",method = RequestMethod.POST)
public Object addUser(@RequestBody User user) throws IOException{
return tokenService.register(user);
}
@ApiOperation(value="更新用户详细信息", notes="根据传过来的user信息来更新用户详细信息,username为唯一键")
@ApiImplicitParam(name = "updateUser", value = "用户实体", required = true, dataType = "User")
@RequestMapping(value = "/updateUser",method = RequestMethod.PUT)
public Object updateUser(@RequestBody User updateUser) throws IOException{
int i = userService.updateUser(updateUser);
if(i == Constants.NO_EXIST){
return Response.result(ExceptionMsg.NO_EXIST);
}else{
return Response.result(ExceptionMsg.SUCCESS);
}
}
@ApiOperation(value="删除用户", notes="根据用户名来指定删除对象")
@ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String",paramType="query")
@ApiResponses({ @ApiResponse(code = Constants.SUCCESS, message = "操作成功"),
@ApiResponse(code = Constants.NO_EXIST, message = "记录不存在"),
@ApiResponse(code = Constants.NO_AUTH, message = "无权限")})
@RequestMapping(value = "/deleteUser",method = RequestMethod.DELETE)
public Object deleteUser(@RequestParam String username){
int i = userService.deleteUser(username);
if(i == Constants.NO_EXIST){
return Response.result(ExceptionMsg.NO_EXIST);
}else{
return Response.result(ExceptionMsg.SUCCESS);
}
}
@ApiOperation(value="获取用户详细信息", notes="通过username来获取用户详细信息")
@ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String",paramType="query")
@RequestMapping(value = "/findUser",method = RequestMethod.GET)
public Object findUser(@RequestParam(value="username")String username){
return new ResponseData(ExceptionMsg.SUCCESS,userService.findUser(username));
}
@ApiOperation(value="模糊查询用户信息")
@ApiImplicitParams(
{@ApiImplicitParam(name = "field", value = "属性名", required = true, dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "word", value = "搜索的单词", required = true, dataType = "String", paramType = "query")})
@RequestMapping(value = "/findUsersByLike",method = RequestMethod.GET)
public Object findUsersByLike(@RequestParam(value="field")String field, @RequestParam(value="word")String word){
return new ResponseData(ExceptionMsg.SUCCESS,userService.findUsersByLike(field,word));
}
@ApiOperation(value="通过角色获取用户信息", notes="通过roleName来获取用户信息")
@ApiImplicitParam(name = "roleName", value = "角色名", required = true, dataType = "String",paramType="query")
@RequestMapping(value = "/findUsersByRoleName",method = RequestMethod.GET)
public Object findUsersByRoleName(@RequestParam(value="roleName")String roleName){
return new ResponseData(ExceptionMsg.SUCCESS,userService.findUsersByRoleName(roleName));
}
@ApiOperation(value="获取用户所有权限", notes="通过username来获取用户所有权限")
@ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String",paramType="query")
@RequestMapping(value = "/findAllAuths",method = RequestMethod.GET)
public Object findAllAuths(@RequestParam(value="username")String username){
return new ResponseData(ExceptionMsg.SUCCESS,userService.findAllAuths(username));
}
@ApiOperation(value="通过用户组获取用户", notes="通过userGroupName来获取用户")
@ApiImplicitParam(name = "userGroupName", value = "用户组名", required = true, dataType = "String",paramType="query")
//@ApiIgnore //使用这个注解忽略这个接口
@RequestMapping(value = "/findUsersByUserGroupName",method = RequestMethod.GET)
public Object findUsersByUserGroupName(@RequestParam(value="userGroupName")String userGroupName) {
return new ResponseData(ExceptionMsg.SUCCESS,userService.findUsersByUserGroupName(userGroupName));
}
}