理解RESTful架構和通用異常處理

 

請求規範:

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拋自定義異常

創建一個結果集類

最後的切面 從結果集取數據

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章