我在我的项目中使用 web api 来公开数据,而这些数据又旨在由移动应用程序和 web 应用程序使用。
我想知道公开数据的最佳做法是什么。
例如,我有一个客户注册表,我在其中捕获客户详细信息,包括城市和国家/地区。
公开数据的一种方法是为城市和国家/地区设置单独的 Controller ,并在客户注册表上分别调用两者以加载城市和国家/地区的数据。
这种方法的问题是,如果我必须加载一百个字段,我将不得不对 api 进行一百次不同的调用来加载数据,因此应用程序会很慢。
第二种方法是以这样一种方式设计 api 层,即一个 Controller 公开表单/屏幕(客户注册)所需的所有查找数据(城市、国家)。在这种情况下,我将不得不对 api 进行一次调用以获取所有必需的数据。
感觉就像,使用第二种方法我违反了关注点分离。
走哪条路?
最佳答案
你不能把 UI 和 API 层分开吗?
如果它们不是您域的核心部分,我认为您不应该创建 API 来获取国家或任何其他侧引用。
我想你应该暴露api/v1/users
用户注册的资源端点,它需要有效的用户数据进行注册。
另外你应该暴露/users
UI,它将生成完整的 UI,包括您需要的所有列表并将其呈现给用户。此 UI Controller 将在内部调用您的域模型,而不是通过 API 来获取生成 UI 所需的所有详细信息。然后客户端的 UI 将使用用户选择的数据调用您的 API Controller 以注册用户。
这会适合您的开发模式吗?
关于asp.net - Web Api - 每个数据库实体或每个 UI 屏幕的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33649401/