什么是restful?
restful
就是一个资源定位操作的风格,不是标准也不是协议,只是一种风格,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
资源
:互联网所有的事务都可以呗抽象为资源
资源操作
:使用post、delete、put、get等,使用不同的方法对资源进行操作。
传统方式操作资源:
URI资源标识符,URL包括资源标志符,对资源的操作
http://127.0.0.1/item/queryItem.action?id= 1查询,get
http://127.0.0.1/item/saveItem.action 添加,post
http://127.0.0.1/item/updateItem.action 更新 post
http://127.0.0.1/item/deleteItem.action?id= 1 删除,get或post
restful操作资源的方式
http://127.0.0.1/item/1 查询,get
http://127.0.0.1/item 添加 post
http://127.0.0.1/item 更新 put
http://127.0.0.1/item/1 删除 delete
restful风格查询商品
使用restful风格开发的接口,根据ID查询商品,接口地址是:http://localhost/8080/item/1
我们需要从URL上获取商品的ID,步骤如下:
- 1.使用注解@RequestMapping(“item/{id}”)声明请求的url,{xxx}叫做占位符,请求的url可以是“item/1”或“item/2”
- 2.使用(@PathVariable() Integer id)获取url上的数据
@RequestMapping("item/{id}")
public String itemQuery(@PathVariable("id") Integer ids,Model model) {
// 查询商品信息
Item item = itemService.getItemById(ids);
// model返回数据模型
model.addAttribute("item", item);
// mav.addObject("item", item);
return "itemEdit";
}
如果@RequestMapping中表示为"item/{id}",id和形参名称一致,不需要任何操作,如果不一致,则使用@PathVariable指定名称。代码中指定了。
注意:
- 1.@PathVariable是获取url上数据的,而@RequestParam获取请求参数的(包括post表单提交)
- 2.如果加上@RequestBody注解,就不会走视图解析器,不会返回页面,目前返回的json数据,如果不加,则会进入视图解析器,返回页面