首页 > 解决方案 > 从 API 获取 UI 显示相关数据

问题描述

从最佳实践的角度来看,是否可以从 API 中获取需要在 UI 上显示的友好名称或描述之类的内容?或者 API 是否应该忽略数据是如何显示给用户的?

标签: angularasp.net-web-apiarchitecturesoftware-design

解决方案


我认为从 API 中获取它很好。请注意,如果您支持多种语言,则需要返回多个标签或向 API 调用添加语言参数。

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

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

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

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


推荐阅读