最近公司搭建的專案,前端反映後端返回格式不統一的問題,因此引發小編的思考,如何能夠優雅的處理返回值格式呢?在度娘中仔細研讀了一番,決定總結一下,於是乎此文便誕生了。
首先,大家都會思考為什麼要做統一格式處理呢?
現階段的開發模式多以前後端分離形式存在,前後端開發人員需要通過大量 api 來進行資料互動,如果在互動過程中前後端人員經常遭遇如下問題:
以上只是前後端人員通過接**互的一小部分問題,這些問題就好比"牙痛",不致命,但是在整個軟體開發的生命週期內,天天"牙痛」是很要命的, 需要解決上述的問題,需要前後端人員都能認識與了解介面設計規範的重要性。因此,如何讓前端小夥伴可以處理標準的 response json 資料結構都至關重要。
通過上面乙個問題把大家帶入正題,下面我們統一定義一下格式。
每一次 restful 請求都應該包含以下幾個資訊:
名稱描述
success
標識請求成功與否,false、true
code
狀態碼,標識錯誤型別
message
提示資訊
data
返回資料
/*** @author:qxy
* @date:2020/4/7 13:07 */
public
enum
resultcodeenum
常見的http狀態碼如:200 -請求成功;
301 -資源(網頁等)被永久轉移到其它url;
404 -請求的資源(網頁等)不存在;
500 -內部伺服器錯誤。
message:錯誤資訊
在發生錯誤時,如何友好的進行提示?
1.根據code 給予對應的錯誤碼定位;
2.把錯誤描述記錄到message中,便於介面呼叫者更詳細的了解錯誤。
狀態碼型別
code區間
型別含義
1100-199
資訊伺服器接收到請求,需要請求者繼續執行操作
2200-299
成功請求被成功接收並處理
3300-399
重定向需要進一步的操作以完成請求
4400-499
客戶端錯誤
請求包含語法錯誤或無法完成請求
5500-599
服務端錯誤
伺服器在處理的時候發生錯誤
2.3統一結果類
/*** 有參構造:返回成功
/*** 有參構造:返回失敗
/*** 返回成功(有返回結果)
/*** 通用返回失敗
/*** 捕獲異常型別設定狀態和提示資訊
如何優雅的處理錯誤
1 封裝錯誤error,使其記錄錯誤檔名稱 檔案路徑 行數 操作 錯誤資訊等相關資訊。封裝錯誤型別,myerror 型別記錄了檔案,行號,相關的錯誤資訊 type myerror struct patherror 除了底層錯誤外還提供了使用哪個檔案,執行哪個操作等相關資訊。type patherro...
如何設計乙個優雅的RESTFUL的介面
設計介面是我們開發人員的日常操作。當我們把接 給前端人員時,是否有種拔劍出鞘的錯覺。畢竟交付介面,我們的開發工作就階段性完成了。不過,如果我們沒有乙個介面設計規範的時候,結果會怎樣呢?我們來張圖感受一下。2000年,乙個年輕小夥子 roy thomas fielding 在他的博士 提出了 rest...
如何優雅處理vue中的條件渲染
說到條件渲染,有些人會脫口而出v if v show,你是否厭倦了if else switch巢狀,是否反感大量出現的 運算子,也許你需要了解一下vue的filters 基本操作如果需要根據情況渲染不同資料,在條件允許的前提下,用filters代替v if 實用過濾器進行模板繫結 div templ...