【发布时间】:2013-08-04 03:42:10
【问题描述】:
我目前在一个网站上工作,并且我按照具有存储库和管理器的存储库模式很好地分离了关注点。现在,我正在尝试实现一个 Web API,因为将来能够从各种客户端使用它,我将从中受益匪浅。由于我对 REST 服务相当陌生,因此我无法正确使用 MVC4 应用程序中的服务使用我的 Web API,然后在我的 MVC 控制器中使用该服务。我不想在每次调用 API 时都使用敲除。
我的 Web API 看起来像这样(简化):
public class UserController : ApiController
{
private readonly IUserManager _manager;
public UserController(IUserManager manager)
{
this._manager = manager;
}
// GET api/user
public IEnumerable<User> Get()
{
return _manager.GetAll();
}
// GET api/user/5
public User Get(int id)
{
return _manager.GetById(id);
}
// POST api/user
public void Post(User user)
{
_manager.Add(user);
}
// PUT api/user/5
public void Put(User user)
{
_manager.Update(user);
}
// DELETE api/user/5
public void Delete(User user)
{
_manager.Delete(user);
}
}
我基本上想创建一个服务来使用我的 Web API:
public class UserService : IUserService
{
....Implement something to get,post,put,and delete using the api.
}
所以我可以在我的 mvc 控制器中使用它:
public class UserController: Controller
{
private readonly IUserService _userService;
public UserController(IUserService userService)
{
this._userService = userService;
}
//And then I will be able to communicate with my WebAPI from my MVC controller
}
我知道这是可能的,因为我在一些工作场所看到过它,但是很难找到关于这个的文章,我只找到了解释如何通过淘汰赛使用 Web API 的文章。任何帮助或提示将不胜感激。
【问题讨论】:
标签: rest asp.net-mvc-4 asp.net-web-api