你如何从另一个web api服务调用web api服务?

时间:2015-03-08 05:16:50

标签: c# web-services rest asp.net-web-api

我在我的解决方案中创建了一个使用Entity Framework / Web API的数据访问层项目。经过一些测试后,我对结果感到满意,于是我决定为Business Logic提供另一项服务。

由于我将有几个应用程序与业务逻辑层连接,我假设使用Web API创建另一个安静的服务将是最好的方法。话虽如此,在学习了有关模型和实体框架的所有内容之后,我正在抓挠我。由于DAL与数据库连接,我假设我在这个新项目中根本不使用模型,只是构建一个调用我的DAL服务的控制器。这是正确的还是我在这里完全没有找到的东西?

如果我没有遗漏任何东西,有人能指出我如何从宁静的服务中呼叫一个宁静的服务吗?

1 个答案:

答案 0 :(得分:1)

如果要在没有回发的情况下发布或获取数据服务器端,Web Api可以为MVC应用程序添加值。

对于服务,将业务逻辑放在控制器中并让控制器调用充当DAL的内部库是很常见的。

示例...

<强> MyProject.soln

  • MyProject.Library(这是你的DAL)
  • MyProject.Services(Web API)
  • MyProject.Web(MVC网站)

我喜欢MVVM / Repository / Mapper模式。它预先做了额外的工作,但非常可扩展且漂亮SOLID。它通常包括:

  1. 表示数据库中对象的数据模型
  2. 执行 CRUD操作的每个(或大多数)模型的存储库。没有转变。
  3. 查看代表视图或服务控制器中所需数据的模型
  4. 将我的数据模型转换为View Models的Mapper类。
  5. 控制器示例

    public IHttpActionResult Post(MyViewModel viewModel)  
    {  
        if (!ModelState.IsValid) 
        {  
            return Content(HttpStatusCode.BadRequest, ModelState);  
        }  
        var modelMapper = new ModelMapper();  
        var model = modelMapper.getModelFromViewModel(viewModel);  
        var modelRepository = new ModelRepository();  
        modelRepository.Save(model);  
        return Ok();  
    }