REST的全称是Representation State Transfer,它描述了一种设计Web应用的架构风格,它是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是 RESTful风格的。REST原则如下:
接口路径范例
由于表单仅支持get/post请求,就算手动设定action="put"请求还是会变成get方式,这时需要提交_method参数,服务器端需要配置HiddenHttpMethodFilter。
ajax请求依然需要提交_method参数
- 资源由URI来指定,URI是资源唯一的ID
- 显示的使用HTTP方法,POST=create,GET=read,PUT=update,DELETE=delete
- 资源多重表述,包括JSON、XML、HTML等
- 无状态,不依赖同一台服务器接收请求
接口路径范例
- 模式,http(s)://server.com/app-name/{version}/{domain}/{rest-convention},
- /order,post,创建order
- /order/{id},get+put+delete,读取+修改+删除order
- /orders,get或post,列表+分页+搜索
- /order/{id}/items,get或post,订单的子项列表
- /order/{id}/item,post,订单的子项创建
- /order/{oid}/item/{iid},get+put+delete,订单的子项编辑
由于表单仅支持get/post请求,就算手动设定action="put"请求还是会变成get方式,这时需要提交_method参数,服务器端需要配置HiddenHttpMethodFilter。
<form method="post">web.xml
<input type="hidden" name="_method" value="put">
<input type="submit">
</form>
<filter>
<filter-name>hiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>hiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
ajax请求依然需要提交_method参数
appcan.ajax({
type: 'post',
url: HHMAS,
data: {
_method:'put',
},
dataType: 'json',
success: function(data, status, requestCode, response, xhr) {
if(requestCode==200){
alert(JSON.stringify(data))
}
}
});