Asp.net core MVC中web刮取逻辑的位置
我正在构建一个.NET核心MVC应用程序。它有一个端点,通过抓取imdb站点来检索电影的imdb id。所以我的问题是,我应该把逻辑放在哪里来获取id?我最初的项目结构如下所示Asp.net core MVC中web刮取逻辑的位置,asp.net-core,model-view-controller,Asp.net Core,Model View Controller,我正在构建一个.NET核心MVC应用程序。它有一个端点,通过抓取imdb站点来检索电影的imdb id。所以我的问题是,我应该把逻辑放在哪里来获取id?我最初的项目结构如下所示 +--Controller +--Entry point api call +--Logic +--Class that retrieves imdbId +--Models +--Models +--Context 因此,我最初打算将逻辑放在“logic”文件夹中检索id的位置,并从控制器调用它。我还
+--Controller
+--Entry point api call
+--Logic
+--Class that retrieves imdbId
+--Models
+--Models
+--Context
因此,我最初打算将逻辑放在“logic”文件夹中检索id的位置,并从控制器调用它。我还将实例化模型并将其存储在这里的DB中。我还在控制器中请求验证,并确保给定的电影标题和发行年份的格式正确
但我开始认为这是不正确的?我应该把请求验证和id检索放在模型层吗?任何关于如何实现这一点的帮助都将不胜感激。我建议您将其放在Logic类中,这样您就可以在模型之外对逻辑进行单元测试。您的模型应该非常简单,只有属性,如果有其他内部逻辑需要的话 您将需要进行的http调用我将输入您的逻辑,并确保您正在为http客户机使用一些接口,这样您就可以创建MOQ,以便更轻松地进行单元测试 因此,我最初打算将逻辑放在“logic”文件夹中检索id的位置,并从控制器调用它 我也会这么做。ID检索与控制器无关(表示层不关心如何检索ID),因此应将其放置在单独的层中 我应该把请求验证和id检索放在模型层吗 不,因为这不适用于模型。模型层应该只包含模型的类。我会将请求验证放在控制器(表示层)中 我的建议是,您原来的项目结构工作良好。在逻辑层中,我将进一步分离不同服务之间的关注点,以便ID检索功能将驻留在与DB存储功能不同的服务中(DB管理本身也可以是一个单独的层)