gpt4 book ai didi

asp.net-mvc - 使用 ASP.NET MVC 创建 API - 全部在一个项目中,还是两个项目中?

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

所以我已经记录了。创建 API 以访问我们的应用程序的要求。并非所有 Controller 操作都包含在 API 中(可能是 50%)。

我想我可以使用相同的项目,检查每个请求的 http header ,并根据需要使用 xml、JSON 或 html 进行响应(很像 rails)。

或者

创建一个新的 ASP.NET MVC 应用程序,部署 @ api.myapp.com 并将其专门用于 API 访问。

我假设我可以为第一个选项编写一个基本 Controller 来处理 99% 的工作。第一个选项的问题是我们不需要(或想要)至少 1/2 的 Controller 操作的 API 功能(并且可能永远不会)。

在第二个选项中,我有一些 Controller 的副本,但好消息是大多数/全部?我的 Controller 操作只有几行代码。通常:

Whatever whatever = new Whatever(....);
repository.Save(whatever);

无论如何,堆栈溢出者是怎么想的?

最佳答案

似乎您想创建类似 REST 服务的东西。请看 this post of Phil Haack .
是的,我相信你可以把它放在同一个项目中。但最好以某种方式将它们分开(使用 MvcContrib 中的区域或移动 api 和 web 应用程序的 Controller 来分离程序集,就像在 SharpArchitecture 中完成的那样。如果您的 Controller 重复了很多代码,您可以创建通用 Controller ,例如:

public class ControllerBase<T, Service> : Controller
where Service : IService<T>
{
public Service service { get; set; }
public ActionResult Save(int id)
{
var item = service.Get(id);
if (TryUpdateModel<T>(item))
{
service.Save(item);
return View("Success");
}
return View("Error", item);
}
}
希望这可以帮助。

关于asp.net-mvc - 使用 ASP.NET MVC 创建 API - 全部在一个项目中,还是两个项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/574082/

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