有一个应用程序可以提供大量的资源列表,在UI中,用户可以根据类型和其他属性过滤资源。
资源有不同的类型,但它们几乎没有共同的属性。例如,Car、Book和Pet类型的资源都有颜色、价格、所有者和类型作为公共属性。
目前,应用程序有一个端点/resources,它将所有资源同时发送为JSON,这是一个资源对象列表,现在由于这种方法,几乎所有对象都有很少的带有null值的字段,而这些属性根本就没有意义。
让我们举一个例子:
[{
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'
}, ...];一旦数据处于前端,用户就可以应用所有类型的过滤来获取所需的信息。
问题:
typescript)和后端代码库(java)中进行了大量的检查,而基于代码的似乎是重复的和脆弱的。问题:
该项目仍处于早期阶段,因此我可以要求重构,这可以提供长期收益,我在想,如果需要有不同的终点,然后聚集在前端?但是,对于每种资源类型都会有许多api调用,如果所有数据都无法加载,UI可能处于不一致的状态。
发布于 2017-10-14 04:03:44
应用程序可以提供各种类型的对象的数据流,这是没有问题的。但是,如果使用者应用程序应该保持健壮和可维护,那么最好确保每个对象都携带足够的元数据,使该流的使用者能够或多或少地以一般的方式正确地解释数据,而不需要对数据结构或其语义进行大量容易出错的隐含假设。
例如,如果使用不同端点的唯一目的是按类型预先筛选对象,但每个对象也带有显式类型信息,那么不同的端点在可维护性方面不会给您带来任何好处,因为如果需要的话,使用者可以使用类型字段将对象过滤到不同的流中。类型信息是这里重要的元数据。
或者,如果这里的主要用例是让用户过滤从数据流中提供的信息,那么属性/列名元数据信息是至关重要的,这也是由JSON格式提供的。但是,如果数据也应该在UI中排序,则需要知道属性的确切数据类型,因为数字在被解释为字符串时排序不同。可以通过一些单独的JSON提供这些数据,也可以通过使值文本类型识别(与上面的示例相反,在上面的示例中,每个数字似乎都是用字符串编码的)。
https://softwareengineering.stackexchange.com/questions/359119
复制相似问题