从API获取与UI显示相关的数据

问题描述

从最佳实践的角度来看,是否可以从API获取需要在UI上显示的友好名称(又称为描述)之类的东西?还是应该让API忽略数据如何显示用户

解决方法

我认为可以从API获得此功能。请注意,如果您支持多种语言,则需要返回多个标签或向API调用添加语言参数。

在Angular应用中的api命名和UI之间有一个映射。但是问题在于,在过滤或在对api的任何请求中使用它们时,我需要来回切换。

我可以理解为什么使用双向地图感觉不正确,为此,我建议您将这些字段作为对象来处理。一个对象将具有与API模式相对应的规范名称(称为slugcanonicalidvalue等)和一个或多个UI标签( labeltitletranslationsingularpluralen / es / de等。 )。最简单的形式:

interface Field {
    value: string;
    label: string;
}

当您的应用从API接收到此Field对象时,它应将其作为完整对象传递。 UI组件将通过访问特定属性来显示标签文本。但是他们还可以访问整个对象,因此可以发出具有规范值的API请求。