我目前正在一個網站上工作,並且在存儲庫模式與存儲庫和管理員之後,我對問題進行了很好的分離。現在,我試圖實現一個Web API,因爲我將來可以從各種客戶端使用它,從中受益匪淺。由於我對REST服務相當陌生,因此無法正確使用我的MVC4應用程序中服務的Web API,然後在我的MVC控制器中使用該服務。我不想在每次調用API時都使用knockout。從MVC4控制器消費Web 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
}
我知道這是可能的,因爲我已經看到它在一些workpl中完成王牌,但很難找到有關這方面的文章,我只找到解釋如何通過淘汰賽消費Web API的文章。任何幫助或提示將不勝感激。
這就是我正在尋找的。那麼,至少從一開始就是這樣。非常感謝你。還有一個問題,我希望你能回答我。我是否必須單獨運行我的API才能正常工作?或主持?我至少有80%確定我應該能夠運行我的整個解決方案(包括MVC4應用程序和WebApi's),並且能夠正確匹配API? – Eddie
不,完全沒有。我需要將該後端從該特定項目的前端分離出來,但無法阻止您在同一個項目中同時擁有API和MVC。 –
好的,我會再看看你的項目。所以你是說,通過運行我的解決方案** MVC項目作爲啓動項目**應該足以能夠擊中API? – Eddie