2017-10-09 22 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创建更复杂的结构,而无需进入所述结构的实现细节。