(一)RESTful风格
在RESTful风格中,一个资源对应着一个一个网址,而代表一个网址的应该是一个名词而不是动词。
(二)REST名词解释
Respresentational State Transfer在 转态资源转换
第一个名词是"资源",首先有资源
第二个名词是"表现层",有了资源也要根据需要以合适的形式来表现资源
第三个名字是"状态转换",资源可以被增,删,改,查
(三)HTTP的常用行为
GET 访问资源 对应@GetMapping注解 URI设计: /user/1 /users/{id}
POST 增加资源 对应@PostMapping注解 /user/{username}/{id}/{sex}
PUT 修改资源 对应@PutMapping注解 /user/{username}/{id}/{sex}
DELETE 删除资源 对应@DeleteMapping注解 /user/{id}
(四)常用注解
上面的四个
@PathVariable 在方法参数中,比如@PathVariable("id"),表示在获取从前端传递进来参数
@RequestBody 可以将请求体为json的数据转化为java对象(接收json数据)
@RequestParam 用于接收url地址传参或表单传参
url地址传参是指 ?xxx=xxx 的格式
@RestController = @Controller + @ResponseBody
解释: @RestController 写在controler类上,在以前需要写@ResponseBody的方法上现在不需要写了
(五)HTTP动作代码示例
1)POST 注意前端传递的是json类型的。
@Post("/user")
public User insertUser(@RequestBody UserVo userVo){
//调用service代码
}
2)GET 此时前端请求的uri是 /user/1
@GetMapping("/user/{id}")
public UserVo getUser(@PathVariable("id") Integet id){
//service层代码
}
3)Put
@PutMapping("/user/{id}")
public User updateUser(@PathVariable("id") String id,@ResponseBody UserVo userVo){
//service层代码
}
4)Delete一样
5)表单,不需要用javascript来提交,他的实现是先请求一个控制器,这个控制器转而请求jsp。然后jsp页面中的form表单有相应的信息
(六)客户端请求RestTemplate
按照微服务的建议,每个微服务系统都会暴露REST风格的URI请求给别的微服务系统所调用。为了方便完成系统之间的相互调用,spring还给予了模板类RestTemplate,通过它可以很方便的对REST请求进行系统之间的调用,完成数据的集成
这个具体的查看: 转载 Spring之RestTemplate使用小结 - 掘金