restful的好處:
輕量,基於http;
看Url就知道要什么,url有很強可讀性的,具有自描述性;
看http method就知道干什么,基於http請求的方式不同,對應資源的增刪改查;
看http status code就知道結果如何:
服務器向用戶返回的狀態碼和提示信息,常用的有: 200 OK :服務器成功返回用戶請求的數據 201 CREATED :用戶新建或修改數據成功。 202 Accepted:表示請求已進入后台排隊。 400 INVALID REQUEST :用戶發出的請求有錯誤。 401 Unauthorized :用戶沒有權限。 403 Forbidden :訪問被禁止。 404 NOT FOUND :請求針對的是不存在的記錄。 406 Not Acceptable :用戶請求的的格式不正確。 500 INTERNAL SERVER ERROR :服務器發生錯誤。
可提供OpenAPI,便於第三方系統集成;
如果提供無狀態的服務接口,提高應用的水平擴展性;
資源描述與視圖的松耦合;
服務器返回的數據格式一般以xml,json做數據交換;
tip:
web應用下,大部分瀏覽器只支持get、post方式;
如何在表單提交put/delete請求:
//添加攔截器 <filter> <filter-name>httpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>httpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
//前端如果想發送delete請求,那么需要先發送post請求,在請求參數中攜帶參數名"_method",value為"delete"; $.ajax({ type: "post", url:url, data: {"contentId": id, "_method": "delete"}, success: function (data) { if (data.status == 0) { alert("成功!"); location.reload(); } else { alert("操作失敗!" + data.reason); } } }); //或者表單提交時,增加hidden類型數據: <input type="hidden" name="_method" value="put" />