1、什么是REST(我也不是很深刻理解)
REST的名称解释
SOAP:简单对象访问协议(英文:Simple Object Access Protocol,简称SOAP)。
REST:表述性状态传递(英文:Representational State Transfer,简称REST)。
REST是比SOAP更简单的一个Web应用可选方案。
REST是一种面向资源的架构风格,强调描述应用程序的事物和名词。
Representational :表述性,REST资源可以使用各种不同的形式进行表述,如XML,JSON,HTML;
State:状态,使用REST的时候,我们关注的是资源的状态,而不是行为;
Transfer:转移,REST的资源,通过某种形式的表述,在应用之间传递转移。
简洁地说,REST就是将资源的状态,以最合适客户端或服务器的表述方式,在服务器与客户端之间转移。
REST与HTTP方法
URL:REST中,资源通过URL定位和识别。虽然没有严格的URL格式定义,但是一个URL应该能识别资源,而不是简单的一个命令。因为REST的核心是资源,而不是行为。
行为:REST中也有行为,但是不是在URL中体现,一般通过HTTP行为来定义,例如CRUD
Creat:POST
Read:GET
Update:PUT/PATCH
Delete:Delete
2、Spring对REST的支持
a、控制器支持所有HTTP方法,包含POST/GET/PUT/DELETE,Spring3.2及以上版本还包含PATCH。
b、@PathVariable注解使控制器可以处理参数化URL
c、Spring的视图和视图解析器,资源可以以多种方式表述,包括将模型数据渲染成XML/JSON/Atom/RSS的View实现。
d、可以使用ContentNegotiatingViewResolver来选择客户端最适合的表述。
e、使用@Response注解的各种HttpMethodConverter实现,能够替换基于视图的渲染方式。
f、使用@Response注解的各种HttpMethodConverter可以将传入的HTTP数据转化为控制器处理方法的Java对象。
g、借助RestTemplate,Spring应用能够方便地使用REST资源。