java version b2b2c social electricity supplier spring cloud distributed micro-services (e) build RESTful API

First, review and elaborate use of the quick start in @ Controller, @ RestController, @ RequestMapping comment. If you are not familiar with Spring MVC and have not tried Quickstart case, I recommend a look at the contents of the Quick Start.

@Controller: Modified class, used to create the object handle http request
@RestController: After Spring4 adding annotations originally returned in json in @Controller need @ResponseBody to match, if the direct use @RestController alternative @Controller do not need to configure @ responseBody, default return json format.
@RequestMapping: url mapping configuration
Here we try to use Spring MVC RESTful API to implement a set of operations to User objects, with the annotation map in detail how the Spring MVC HTTP request, how to pass parameters, how to write unit tests.

RESTful API specifically designed as follows:

Here Insert Picture Description
User-defined entities:

public class User { 
 
    private Long id; 
    private String name; 
    private Integer age; 
 
    // 省略setter和getter 
     
}

Implement the operation of the User Interface object

@RestController 
@RequestMapping(value="/users")     // 通过这里配置使下面的映射都在/users下 
public class UserController { 
 
    // 创建线程安全的Map 
    static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>()); 
 
    @RequestMapping(value="/", method=RequestMethod.GET) 
    public List<User> getUserList() { 
        // 处理"/users/"的GET请求,用来获取用户列表 
        // 还可以通过@RequestParam从页面中传递参数来进行查询条件或者翻页信息的传递 
        List<User> r = new ArrayList<User>(users.values()); 
        return r; 
    } 
 
    @RequestMapping(value="/", method=RequestMethod.POST) 
    public String postUser(@ModelAttribute User user) { 
        // 处理"/users/"的POST请求,用来创建User 
        // 除了@ModelAttribute绑定参数之外,还可以通过@RequestParam从页面中传递参数 
        users.put(user.getId(), user); 
        return "success"; 
    } 
 
    @RequestMapping(value="/{id}", method=RequestMethod.GET) 
    public User getUser(@PathVariable Long id) { 
        // 处理"/users/{id}"的GET请求,用来获取url中id值的User信息 
        // url中的id可通过@PathVariable绑定到函数的参数中 
        return users.get(id); 
    } 
 
    @RequestMapping(value="/{id}", method=RequestMethod.PUT) 
    public String putUser(@PathVariable Long id, @ModelAttribute User user) { 
        // 处理"/users/{id}"的PUT请求,用来更新User信息 
        User u = users.get(id); 
        u.setName(user.getName()); 
        u.setAge(user.getAge()); 
        users.put(id, u); 
        return "success"; 
    } 
 
    @RequestMapping(value="/{id}", method=RequestMethod.DELETE) 
    public String deleteUser(@PathVariable Long id) { 
        // 处理"/users/{id}"的DELETE请求,用来删除User 
        users.remove(id); 
        return "success"; 
    } 
 
}

spring cloud b2b2c e-commerce social platform source code, please add penguin beg: three four five three six II qi II fifty-nine

Guess you like

Origin blog.csdn.net/qq_42748864/article/details/93891172