package com.jay.spring.boot.demo10.swagger2.controller; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.jay.spring.boot.demo10.swagger2.bean.User; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @RestController @RequestMapping (value = "/users" ) // 通过这里配置使下面的映射都在/users下,可去除 public class UserController { static Map<Long, User> users = Collections.synchronizedMap( new HashMap<Long, User>()); @ApiOperation (value = "获取用户列表" , notes = "" ) @RequestMapping (value = { "" }, method = RequestMethod.GET) public List<User> getUserList() { List<User> r = new ArrayList<User>(users.values()); return r; } @ApiOperation (value = "创建用户" , notes = "根据User对象创建用户" ) @ApiImplicitParam (name = "user" , value = "用户详细实体user" , required = true , dataType = "User" ) @RequestMapping (value = "" , method = RequestMethod.POST) public String postUser( @RequestBody User user) { users.put(user.getId(), user); return "success" ; } @ApiOperation (value = "获取用户详细信息" , notes = "根据url的id来获取用户详细信息" ) @ApiImplicitParam (name = "id" , value = "用户ID" , required = true , dataType = "Long" ) @RequestMapping (value = "/{id}" , method = RequestMethod.GET) public User getUser( @PathVariable Long id) { return users.get(id); } @ApiOperation (value = "更新用户详细信息" , notes = "根据url的id来指定更新对象,并根据传过来的user信息来更新用户详细信息" ) @ApiImplicitParams ({ @ApiImplicitParam (name = "id" , value = "用户ID" , required = true , dataType = "Long" ), @ApiImplicitParam (name = "user" , value = "用户详细实体user" , required = true , dataType = "User" ) }) @RequestMapping (value = "/{id}" , method = RequestMethod.PUT) public String putUser( @PathVariable Long id, @RequestBody User user) { User u = users.get(id); u.setName(user.getName()); u.setAge(user.getAge()); users.put(id, u); return "success" ; } @ApiOperation (value = "删除用户" , notes = "根据url的id来指定删除对象" ) @ApiImplicitParam (name = "id" , value = "用户ID" , required = true , dataType = "Long" ) @RequestMapping (value = "/{id}" , method = RequestMethod.DELETE) public String deleteUser( @PathVariable Long id) { users.remove(id); return "success" ; } } |