本文目录
SpringMVC 除了支持JSON
数据交互外,还支持RESTful
风格的编程
RESTful概述
Restful(Representational State Transfer)
风格的API是一种软件架构风格,是Roy Fielding
博士在2000年他的博士论文中提出,之后REST就基本上迅速取代了复杂而笨重的SOAP
,成为Web API
的标准了。
RESTful
架构的主要原则
-
网络上的所有事物都被抽象为资源
-
每个资源都有一个唯一的资源标识符
-
同一个资源具有多种表现形式(xml,json等)
-
对资源的各种操作不会改变资源标识符
-
所有的操作都是无状态的
-
符合REST原则的架构方式即可称为RESTful
在RESTful
接口中,推荐所有的方法都是返回JSON
,没有返回页面的(ModelAndView),因此,所有的方法上都需要添加@ResponseBody注解。一个替代的简化方案,是使用@RestController
代替@Controller
。@RestController
实际上是一个组合注解,是@Controller
和@ResponseBody
的组合:
@Controller
@ResponseBody
@RequestMapping("/json")
public class JSONControl {
//......
}
@RestController
@RequestMapping("/json")
public class JSONControl {
//......
}
RESTful接口示例
@RestController
@RequestMapping("/json")
public class JSONControl {
@Autowired
UserService userService;
@GetMapping("/user/{id}")
public User getUserById(@PathVariable Integer id) {
return userService.getUserById(id);
}
@DeleteMapping("/user/{id}")
public void deleteUserById(@PathVariable Integer id) {
//......
}
@PostMapping("/user")
public void addUser(@RequestBody User user) {
//......
}
}