码迷,mamicode.com
首页 > 编程语言 > 详细

spring-boot实战【04】:Spring Boot构建RESTful API

时间:2017-08-17 22:45:22      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:格式   remove   默认   说明   package   ima   get   response   dem   

@Controller:修饰class,用来创建处理http请求的对象
@RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。
@RequestMapping:配置url映射

下面我们尝试使用Spring MVC来实现一组对User对象操作的RESTful API,配合注释详细说明在Spring MVC中如何映射HTTP请求、如何传参。

 

RESTful API具体设计如下:

技术分享

 

 

直接粘代码了:

 1 package com.yucong.yucongdemo.controller;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.HashMap;
 6 import java.util.List;
 7 import java.util.Map;
 8 
 9 import org.springframework.web.bind.annotation.ModelAttribute;
10 import org.springframework.web.bind.annotation.PathVariable;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.bind.annotation.RequestMethod;
13 import org.springframework.web.bind.annotation.RestController;
14 
15 import com.yucong.yucongdemo.domain.User;
16 
17 @RestController 
18 @RequestMapping(value="/users")     // 通过这里配置使下面的映射都在/users下 
19 public class UserController { 
20  
21     // 创建线程安全的Map 
22     static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>()); 
23  
24     @RequestMapping(value="/", method=RequestMethod.GET) 
25     public List<User> getUserList() { 
26         // 处理"/users/"的GET请求,用来获取用户列表 
27         // 还可以通过@RequestParam从页面中传递参数来进行查询条件或者翻页信息的传递 
28         List<User> r = new ArrayList<User>(users.values()); 
29         return r; 
30     } 
31  
32     @RequestMapping(value="/", method=RequestMethod.POST) 
33     public String postUser(@ModelAttribute User user) { 
34         // 处理"/users/"的POST请求,用来创建User 
35         // 除了@ModelAttribute绑定参数之外,还可以通过@RequestParam从页面中传递参数 
36         users.put(user.getId(), user); 
37         return "success"; 
38     } 
39  
40     @RequestMapping(value="/{id}", method=RequestMethod.GET) 
41     public User getUser(@PathVariable Long id) { 
42         // 处理"/users/{id}"的GET请求,用来获取url中id值的User信息 
43         // url中的id可通过@PathVariable绑定到函数的参数中 
44         return users.get(id); 
45     } 
46  
47     @RequestMapping(value="/{id}", method=RequestMethod.PUT) 
48     public String putUser(@PathVariable Long id, @ModelAttribute User user) { 
49         // 处理"/users/{id}"的PUT请求,用来更新User信息 
50         User u = users.get(id); 
51         u.setName(user.getName()); 
52         u.setAge(user.getAge()); 
53         users.put(id, u); 
54         return "success"; 
55     } 
56  
57     @RequestMapping(value="/{id}", method=RequestMethod.DELETE) 
58     public String deleteUser(@PathVariable Long id) { 
59         // 处理"/users/{id}"的DELETE请求,用来删除User 
60         users.remove(id); 
61         return "success"; 
62     } 
63  
64 }

 

spring-boot实战【04】:Spring Boot构建RESTful API

标签:格式   remove   默认   说明   package   ima   get   response   dem   

原文地址:http://www.cnblogs.com/yucongblog/p/7384636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!