package restful;
public class TestOne {
/**
* 1.REST基础知识
* REST远程过程调用机制,
* 不同与soap
* REST :面向资源的
* SOAP:面向行为和动作
*
* Spring如何支持REST
* 1)控制器处理所有http方法,四个REST方法 GET POST DELETE PUT
* 2)@PathVariable注解,支持参数化的url
* 3)借助Spring的视图和视图解析器,能够以多种形式表述资源,xml,json,atom等
* 4)@ResponseBody和HttpMethodConverter能够代替基于视图的渲染方式。
* 5)借助类RestTemplate 能方便使用REST资源 (get post。。。)
*
* 表述性 representational 各种形式进行表述 xml json html
* 状态 state 关注的是资源的状态,而不是对资源采取的行动
* 转移 Transfer 转移资源数据,从一种应用转换到另一个应用
*
* 1.将资源的java 转换为传送给客户端的表述形式
* 内容协商和消息转换(contentne gotiation message conversion)
*
* 内容协商的优势和劣势
* 优势:
* 善于处理面向用户和面向客户端重叠较多的情况。
* 劣势:
* 只能决定数据怎么渲染到客户端,不能决定客户端发送什么样的表述给控制器使用。?????
*
*
* 不推荐使用contentns gotiation
*
*
*
* 2.
* 消息转换
* 更为直接,不需要将模型数据传给视图,没有模型数据,也没有视图;
* 只有控制器产生的数据,以及消息转换器抓转换后的资源表述。
*
* 通过@RequestBody 注解将对象返回给响应
* 1)
* @RequestBody
*
* 能告诉Spring将数据发送给客户端的时候需要一个消息器。
* 查找消息器,将来自客户端的资源数据转换为java对象。
* 2)
* @RestControl
* 如果控制器的每个方法都需要消息转换器,可以使用@RestControl代替@Control
*
* 3)
* produces consumes 关注请求中的Content-Type,不满足条件将会由其他方法来处理。
*
*
* ResponseEntity
* ResponseStatu
*
* 4 RestTemplate的操作
* 读取响应的数据
*
* getForobject 和getForEntity
* getForEntity不仅有响应对象,还有状态和响应头。
*
* 消息转换器将对象转为为表述形式,并将请求发送到服务器端。
*
* 数据处理
* GET POST PUT DELTE EXCHANGE
*
* EXCHANGE能设置返回给服务器的请求头信息
*
*/
public static void main(String[] args) {
}
}