【发布时间】:2018-01-31 17:59:27
【问题描述】:
我正在尝试使用 ASP.NET Core。很多例子都有前端和后端使用相同的项目。我想做的是有一个 API 项目和一个前端项目。我更喜欢这种单独的解决方案,因为如果需要,我将来可以更轻松地添加移动组件。
我的问题是:假设我有项目,一个 Web API(核心)和一个 MVC(核心)我会有重复的控制器吗?
例如,在 API 项目中,我会有以下控制器
- 登录控制器
- 成员控制器
- 商店控制器
这是否意味着在我的 MVC 项目中,我将拥有相同的控制器,并且在控制器中我将对我的 API 项目中的相应控制器进行 REST 调用?让每个请求都经过 MVC 控制器,然后再到 API 控制器,是否显得多余且效率低下?
应如何保护通话?我是否会在成功登录 API 项目后发出 JWT 以保护对 API 层的后续调用?
【问题讨论】:
-
为什么你的 MVC 视图不能直接从 javascript 调用 REST JSON 端点?如果您将 API 保留在同一个项目中,则更容易避免跨源问题、从 MVC 控制器到 API 控制器的重复隧道请求,并且很可能您可以将视图保留为纯 html 并通过调用 Json 端点创建整个 Web 应用程序。除非您要达到百万用户并且需要快速的可扩展性,否则将 API 与 MVC 分离的方法是没有用的。并非每个应用程序都必须划分为太多组件,您必须评估预算、目标受众和增长计划。
-
嗨,Akash,感谢您的建议。如果我需要在调用我的 API 项目的 MVC 应用程序之上有一个移动应用程序怎么办。只有 1 个 MVC 项目仍然可行吗?
-
是的,您可以从移动设备调用所有 API 调用,即使它是同一个 MVC 项目的一部分。
标签: .net asp.net-mvc asp.net-core architecture