問題1比如一個接口:提供多行數據,最后一行顯示總計或者平均值數據是一定要返回的,就是最后的總計或者平均值是后端計算好直接返回,還是客戶端自己通過數據自己計算
問題2比如一個銀行卡賬戶接口:數據庫:表1:卡號,銀行id表2:銀行id,銀行名稱提供的接口(要顯示卡號,銀行名稱)方法1
返回2個對象:卡號和銀行id對應的對象,銀行id和銀行名稱對應的對象??蛻舳俗约航M裝數據
方法2
服務端根據銀行id組裝好數據返回1個對象:卡號和銀行名稱對應的對象。
哪個方法好
4 回答

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
這個要結合具體場景來看。如果數據量很小的話,前端后端都沒有問題,如果數據量很大的話,肯定是后端處理合適。另外,還要取決于后臺現有接口的設計原則,比如接口的定位是提供通用的基礎數據,這個接口不僅為你服務,也為其他應用服務,這時計算可能就是放到前端做合適,因為后端提供的是通用接口。除非,獲取平均值也是一個通用需求,不然沒有必要為了你一個人,而改變原有接口。
根據問題修改新增:
其實還是我上面解釋的,如果后端的接口就是為你一個應用服務的,肯定是要盡量把邏輯做到后端,返回的字段也盡量適配前端需求。但如果后端提供的接口是抽象度較高的通用接口,則不會輕易為一個應用前端改變。這個時候做法有兩種:1. 前端處理起來并不是很麻煩就自己搞定,比如幾十條記錄求個平均值; 2. 如果前端用起來很不方便或是性能有問題,則需要引入中臺層服務,說白了就是在原始的接口之上,根據業務需求再封裝一層接口。

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
你自己想清楚,是 “計算平均值”,還是“獲取一堆數據”,這兩者區別很明顯吧。如果兩者都可以達到目的,那么選擇“盡量不減少信息”的方式,前提是,實現上沒有問題。(什么叫實現有問題,你數據是上萬條的,那么傳遞這上萬條數據也許就是“無法實現”的,但是你數據可預見的一共也有幾十條,那么實現就沒有問題)
要說“接口設計”的話,第一層設計,一定是“面向數據”,而不是“面向業務”。
- 4 回答
- 0 關注
- 905 瀏覽
添加回答
舉報
0/150
提交
取消