【发布时间】:2015-09-21 10:11:53
【问题描述】:
我的理解
基本 MVC Web 应用程序的架构(以简化方式)
(MVC View -> MVC Controller) -> Biz layer -> Data Access Layer -> DB
然后,我必须支持移动设备并为它们提供特定的信息。所以我创建适当的 API 控制器只是为了公开所需的数据。
Mobile device -> API Controller -> Biz layer -> Data Access Layer -> DB
疑问和疑问
我已经看到(或听到)以下建议:
(MVC View -> MVC Controller) -> API Controller -> Biz layer -> Data Access Layer -> DB
或
MVC View -> API Controller -> Biz layer -> Data Access Layer -> DB
基本思想是我们将整个应用程序功能(业务层)暴露在服务之上。然后 MVC 应用程序将使用 API 控制器。
问题 1:API 创建
到目前为止,只有当我有一些数据要作为服务公开(用于移动设备等)时,我才会在我的 MVC Web 应用程序中创建一个 API 控制器。我是否缺少其他一些标准?
问题 2:API 使用情况
在上面,从 MVC 视图调用 API 控制器似乎没问题,尽管不是必须的。但是为什么要从 MVC 控制器调用 API? (对我来说似乎错了。MVC 控制器可以直接与 biz 层对话)
问题 3:API 优势
从 API 返回的数据将被编码为 JSON 并发送到客户端。但是,我们总是可以从 MVC 控制器返回 JSONResult 以获得 MVC 视图。在纯粹的 MVC 应用程序中使用 API 控制器有什么好处吗?
【问题讨论】:
标签: api model-view-controller architecture