问题描述
从最佳实践的角度来看,是否可以从API获取需要在UI上显示的友好名称(又称为描述)之类的东西?还是应该让API忽略数据如何显示给用户?
解决方法
我认为可以从API获得此功能。请注意,如果您支持多种语言,则需要返回多个标签或向API调用添加语言参数。
在Angular应用中的api命名和UI之间有一个映射。但是问题在于,在过滤或在对api的任何请求中使用它们时,我需要来回切换。
我可以理解为什么使用双向地图感觉不正确,为此,我建议您将这些字段作为对象来处理。一个对象将具有与API模式相对应的规范名称(称为slug
,canonical
,id
,value
等)和一个或多个UI标签( label
,title
,translation
,singular
,plural
,en
/ es
/ de
等。 )。最简单的形式:
interface Field {
value: string;
label: string;
}
当您的应用从API接收到此Field
对象时,它应将其作为完整对象传递。 UI组件将通过访问特定属性来显示标签文本。但是他们还可以访问整个对象,因此可以发出具有规范值的API请求。