簡體   English   中英

用於 UI 的 REST API - 一個通用端點與每個組件的端點

[英]REST API for UI - One General Endpoint vs Endpoint per Component

假設我們有兩個微服務:公司 API 和賬戶 API。
我們還有一個儀表板,顯示有關帳戶的一些數據和可視化。

儀表板包括三個小部件(為簡化起見):

小部件 1 - 按某些條件過濾的帳戶表,例如,僅顯示待處理帳戶。 它還顯示與帳戶的公司屬性相關的幾列。

小部件 2 - 按帳戶屬性之一顯示帳戶細分的餅圖。

小部件 3 - 另一個顯示公司帳戶明細的圖表。

從理論上講,儀表板中的所有小部件都顯示有關同一實體 - 帳戶的數據。
現在,我想問一下在 UI 中獲取和顯示帳戶的兩種方法:

通用 REST 端點方法

  • 創建一個用於獲取帳戶的通用端點。
  • 為獲取公司創建一個通用端點。
  • 用戶進入頁面后獲取所有帳戶。
  • 用戶進入頁面后獲取所有公司。
  • 讓每個小部件根據其需要操作、過濾和連接數據。
  • 大部分邏輯都在前端。

REST 端點每個小部件方法

  • 為每個小部件創建一個端點,該端點返回特定小部件的所有相關數據,這些數據已經過濾、操作和連接以滿足小部件的需求。
  • 每個小部件調用其端點並顯示數據。
  • 大部分邏輯都在后端。

我的問題是:

  • 每種方法的優缺點是什么?
  • 在哪種情況下,您會選擇一種方式而不是另一種方式?
  • 還有其他解決此用例的想法嗎?

以下是我對此的想法:

  • 如果您為每個實體創建一個通用端點,那么前端工作負載取決於您從后端獲得的數據量(帳戶/公司的數量)。 如果您對這些實體有限制(比如最多 10 個帳戶),那么這應該不是問題。 如果不是,那么該路徑上的 go 可能會出現問題(隨着時間的推移)。
  • 我會考慮每個實體一個端點的一種情況是,如果您有其他組件(更重要)正在使用來自此 REST API 的數據,並且他們需要以這種方式獲取數據。 但即便如此,如果這真的有必要,我會三思而后行。
  • AFAIK,圍繞 UI 數據流的最佳實踐是你應該在后端做盡可能多的工作,你可以控制資源並且有優化的空間。
  • 您可以考慮的一個想法是考慮一種更有效地存儲數據的方法(已經為視圖做好了准備),以最大限度地減少后端工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM