Java Spring boot

Spring boot 之統一API in out格式設置

謝旻遇 2019/12/27 19:33:25
412

此篇介紹如何透過@RestControllerAdvice實現統一的RequestResponse格式。

 

RestControllerAdvice:

@RestControllerAdvice即為@ControllerAdvice + @ResponseBody

RestControllerAdvice若無進行設置,則可對所有Controller進行統一的處理。

 

統一格式:

Request:

RequestBodyAdvice能夠在request傳遞給相對應的Controller之前進行特殊的處理,如驗證等相關操作。

 

Response:

若有需要特殊處理可透過ResponseBodyAdvice,但大多數都會透過ControllerAdvice進行處理。

 

Exception處理:

下面則透過@RestControllerAdvice來實現一個簡單的統一格式案例,

此案例使用了Lombok來幫助我們簡化程式碼:

首先建立統一的RequestResponse格式如下:

此處將request 切分為兩個部分,InfoData

Info負責放置共用系統資訊

Data負責放置需處理之相關參數

此處將response 切分為兩個部分,Return_InfoReturn_Data

Return_Info負責放置API回傳之共用系統資訊

Return_Data負責放置API回傳之相關參數

 

接著建立一個Controller如下:

而後進行配置此controller傳入傳出之參數名稱格式

狀態碼訂定:

建立自定義之Exception:

使用@ExceptionHandler來處理全域之Exception:

 

配置request相關設定:

此處進行了驗證,若request中的key值若不為ABCDEFG時,回應驗證錯誤。

 

下面進行測試驗證:

 

key = ABCDEFG:

key != ABCDEFG:

 

 

透過RestControllerAdvice可以方便的管理inputoutput,也可透過ExceptionHandler來集中管理Exception處理,讓開發更加簡便。

謝旻遇
東東
2020/02/14 14:17:16

感謝分享!