gpt4 book ai didi

rest - 从 MVC4 Controller 使用 Web API?

转载 作者:行者123 更新时间:2023-12-01 03:55:03 25 4
gpt4 key购买 nike

我目前正在一个网站上工作,并且遵循具有存储库和管理器的存储库模式,我很好地分离了关注点。现在,我正在尝试实现一个 Web API,因为将来能够从各种客户端使用它,我将从中受益匪浅。由于我对 REST 服务还很陌生,因此我无法正确使用来自 MVC4 应用程序中的服务的 Web API,然后在我的 MVC Controller 中使用该服务。我不想每次调用 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 Controller 中使用它:
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 的文章。任何帮助或提示将不胜感激。

最佳答案

看看这里的实现:https://github.com/NBusy/NBusy.SDK/blob/master/src/NBusy.Client/Resources/Messages.cs

它基本上利用了 HttpClient类来使用 Web API。但需要注意的是,所有响应都包含在自定义 HttpResponse 中。该样本中的类。您不需要这样做,可以简单地使用检索到的 DTO 对象作为返回类型或原始 HttpResponseMessage类(class)。

关于rest - 从 MVC4 Controller 使用 Web API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18039526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com