請求規範:
url 應該只代表資源的位置,所以不應該含有具體操作,他的具體表現形式,應該在HTTP協議請求頭用Accept和Content-type指定
因爲Http是無狀態的,所有的狀態都保存在服務端,所以用戶想要操作服務器端的狀態,要通過HTTP協議中四個動詞
響應規範:
嚴格按照狀態碼
另外一點:瀏覽器路徑默認是get方式,當服務端不對應的方式接收時會報405。
關於HTTP請求行、請求頭、請求體詳解鏈接https://blog.csdn.net/u010256388/article/details/68491509
springMVC中ResponseBody作用就是將對象序列化放到響應體裏,默認是JSON串,取決於消息轉換器
springMVC提供一個包含請求頭請求行和請求體的實體類ResponseEntity<T>
所以:一個標準Restful請求響應
如果不指定響應碼。默認返回200
異常處理:一般把狀態碼和友好提示返回前端
但是上圖中返回前端爲空,因爲body裏爲null,而且只能指定類型爲ResponseEntity裏的泛型Item,不能爲String或其他類型
這樣拋異常有提示,但是狀態碼寫死了永遠都是500
所以要用通用異常處理:思想就是aop攔截Controller所有異常,返回相應的異常信息
springMVC中提供了一個註解@ControllerAdivice可以攔截Controllar中的內容
這樣就可以攔截不同的異常信息 返回相應的狀態碼和響應體
但是這樣對於返回結果不夠豐富,可以讓返回結果是從對象裏提取的異常信息
但是異常信息終究是從異常裏提取的,所以自定義異常
異常信息固定且複雜,定義爲枚舉
自定義異常
Controller拋自定義異常
創建一個結果集類
最後的切面 從結果集取數據