gpt4 book ai didi

visual-studio - Visual Studio 项目 REST api

转载 作者:行者123 更新时间:2023-12-04 06:15:20 24 4
gpt4 key购买 nike

使用 Microsoft 的 asp.net web api 东西。

为 REST api 构建 Visual Studio 项目的最佳方式是什么?

我应该为每种类型的对象创建一个新项目并将它们放在一个解决方案中吗?
顾客
地址
银行

或者让它们都在同一个项目中,只是类不同?

这两种方法有什么好处吗?

这个 API 将在某个时候包含我拥有的每个数据源。

最佳答案

我认为您应该有一个 Web 项目,否则您将有多个 HTTP 端点。因此,我假设您的问题是将所有 Web API Controller (派生自 ApiController 的类,请参阅 MSDN)放在哪里。

通常我们在web项目中拥有所有的Web API Controller,这样它们就与其他应用层分离了。 Controller 非常简单,它们只是将调用转发到存储库或其他服务。

在一个项目中,我们还分离了主 Controller ,因为它们可以在不重新编译项目(某种插件)的情况下插入。

如果您使用某种 IoC + 依赖注入(inject)库(我强烈建议),那么 Controller 由容器创建,因此它们可以位于任何引用的程序集中,您应该只在容器内注册所有 Controller 。

这里有一个关于如何使用 CaSTLe Windsor 和 ASP.NET API 的教程:Dependency Injection in ASP.NET Web API with Castle Windsor by Mark Seemann .

这是 Ninject 的另一个教程:Adding Ninject to Web API .

另一个建议是使用Attribute Routing,因为我觉得它更强大也更容易使用。有关详细信息,请参阅 this article .基本上每个 Controller / Action 定义自己的路线,例如:

public class OrdersController : ApiController
{
[Route("customers/{customerId}/orders")]
[HttpGet]
public IEnumerable<Order> FindOrdersByCustomer(int customerId) { ... }
}

最后请注意,因为 Controller 名称(类名称)在所有解决方案中应该是唯一的。

关于visual-studio - Visual Studio 项目 REST api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921787/

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