2017-10-09 40 views
-3

我有一個後端Rails應用程序,主要是API端點和主要在React中構建的前端應用程序。複雜的API vs簡單的API端點

考慮以下模型:

  1. 面板:是儀表板內的容器元素。它定義儀表板內的尺寸/位置。它還使用content_type和content_id(多態關聯)定義其內容。
  2. 圖表/單值/部分:這些都是可用作面板內容的模型。

我現在想要做的是讓用戶在一個步驟中創建一個「圖表面板」。

我一直在想了一會兒,如果它是更好地:

  1. 都基本CRUD API端點和管理面板+圖表創建100%的前端。這意味着前端更復雜,API端點更少。
  2. 在Rails端創建一個額外的API端點來創建panel + chart/panel + single_value/panel + section(原子操作)。這意味着前端更復雜,但API端點更多。

什麼是理想的方法?

回答

1

也許執行單個POST請求/panels/每個面板具有以下請求體創建(假定每面板需要一個內容):

{ 
    dimensions: '', 
    positions: '', 
    content: { 
    type: 'chart', // singleValue, section 
    // content attributes 
    } 
} 

我的建議是Panel應該是一個集中式組件(其解析尺寸和位置),並根據content.type對每個children進行渲染。您將能夠使用單個端點並保持RESTFul標準。

0

在我看來,如果能夠簡化UI的複雜性,您可以聚合粒度端點並創建更多端點。這基本上是一個Facade模式(https://en.wikipedia.org/wiki/Facade_pattern),您可以將粒度端點聚合到特定的高階端點,這將幫助UI創建更復雜的結構,而無需進入所述結構的實現細節。