一、概念
Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。比如: http://api.qc.com/v1/newsfeed: 获取某人的新鲜; http://api.qc.com/v1/friends: 获取某人的好友列表; http://api.qc.com/v1/profile: 获取某人的详细信息;
用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转: GET 用来获取资源, POST 用来新建资源(也可以用于更新资源), PUT 用来更新资源, DELETE 用来删除资源。
-
即对url进行规范,
非RESTful格式:http://.../queryItems.action?id=001&type=T001
RESTful 格式:http://.../items/001
特点:将参数通过url传递到服务端。 -
对http方法进行规范
使用get获取资源、post新建资源、put来更新资源、delete来删除资源 -
对http的contentType规范
请求时指定 contentType ,需要json数据,设置成json的type。。
二、方法定义
需求:查询商品信息,返回json数据。
方法:使用RESTful风格的url,将查询商品信息的id传入controller。输出json使用@ResponseBody 将java对象输出json。
三、使用url模板映射来传递参数
使用**@RequestMapping("/itemsView/{id}")和@PathVariable("id") Integer id **来传递参数信息。
@RequestMapping("/itemsView/{id}")
public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id) throws Exception {
ItemsCustom itemsCustom = itemsService.findItemsById(id);
return itemsCustom;
}
四、对静态资源进行解析
使用RESTful风格的url方式需要对静态资源进行解析:
配置前端控制器的 url-partten 中指定 "/" ,对静态资源的解析则出现问题。
在springmvc.xml中添加静态资源的解析方法。
<!-- 静态资源解析:包括js、css。img... -->
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/img/**" location="/img/"/>