如何優雅的處理Restful

2022-09-11 07:36:10 字數 2374 閱讀 4895

最近公司搭建的專案,前端反映後端返回格式不統一的問題,因此引發小編的思考,如何能夠優雅的處理返回值格式呢?在度娘中仔細研讀了一番,決定總結一下,於是乎此文便誕生了。

首先,大家都會思考為什麼要做統一格式處理呢?

現階段的開發模式多以前後端分離形式存在,前後端開發人員需要通過大量 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...