首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从后端服务异构数据

从后端服务异构数据
EN

Software Engineering用户
提问于 2017-10-13 18:03:09
回答 1查看 87关注 0票数 0

有一个应用程序可以提供大量的资源列表,在UI中,用户可以根据类型和其他属性过滤资源。

资源有不同的类型,但它们几乎没有共同的属性。例如,CarBookPet类型的资源都有颜色、价格、所有者和类型作为公共属性。

目前,应用程序有一个端点/resources,它将所有资源同时发送为JSON,这是一个资源对象列表,现在由于这种方法,几乎所有对象都有很少的带有null值的字段,而这些属性根本就没有意义。

让我们举一个例子:

代码语言:javascript
复制
[{
  type: 'car',
  color: 'red',
  price: '1000',
  owner: 'foo',
  engines: '2',
  tyres: '4',
  capacity: '2',
  name: null
},{
  type: 'pet',
  color: 'red',
  price: '10',
  owner: 'foo',
  engines: null,
  tyres: null,
  capacity: null,
  name: 'koo'
},{
  type: 'book',
  color: null,
  price: '1000',
  owner: 'foo',
  engines: null,
  tyres: null,
  capacity: null,
  name: 'theory of everything'
}, ...];

一旦数据处于前端,用户就可以应用所有类型的过滤来获取所需的信息。

问题:

  1. 只有一个UI表,并根据所显示的资源更改标题。
  2. 在前端代码库(typescript)和后端代码库(java)中进行了大量的检查,而基于代码的似乎是重复的和脆弱的。

问题:

该项目仍处于早期阶段,因此我可以要求重构,这可以提供长期收益,我在想,如果需要有不同的终点,然后聚集在前端?但是,对于每种资源类型都会有许多api调用,如果所有数据都无法加载,UI可能处于不一致的状态。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2017-10-14 04:03:44

应用程序可以提供各种类型的对象的数据流,这是没有问题的。但是,如果使用者应用程序应该保持健壮和可维护,那么最好确保每个对象都携带足够的元数据,使该流的使用者能够或多或少地以一般的方式正确地解释数据,而不需要对数据结构或其语义进行大量容易出错的隐含假设。

例如,如果使用不同端点的唯一目的是按类型预先筛选对象,但每个对象也带有显式类型信息,那么不同的端点在可维护性方面不会给您带来任何好处,因为如果需要的话,使用者可以使用类型字段将对象过滤到不同的流中。类型信息是这里重要的元数据。

或者,如果这里的主要用例是让用户过滤从数据流中提供的信息,那么属性/列名元数据信息是至关重要的,这也是由JSON格式提供的。但是,如果数据也应该在UI中排序,则需要知道属性的确切数据类型,因为数字在被解释为字符串时排序不同。可以通过一些单独的JSON提供这些数据,也可以通过使值文本类型识别(与上面的示例相反,在上面的示例中,每个数字似乎都是用字符串编码的)。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/359119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档