Owin Custom Routing MIddleware in ASP.NET Web Api 2.0



我已经开始使用 Microsoft (http://owin.org/) 的 OWIN 中间件构建一个 ASP.NET Web API 2.0 应用程序。我有几个与路由相关的问题,因为我找不到关于 Web API 的精彩教程。我们的客户可能拥有多家公司(基本上是数据库),他们希望通过此 Web API 提供服务。我们希望用户能够通过自定义路由指定其公司。例如,像 so api/MyCompany/Products 这样的路由将加载 MyCompany 的所有产品。显然,我们不想将公司名称传递到每个控制器上的每个操作中,因此如果标准路由不起作用,我想创建自定义路由或自定义路由中间件。

1) 是否有任何关于 Web API 路由的好教程,我可以研究以帮助我了解我在做什么以及我应该如何做事?

2) 是否有任何关于在 OWIN 上构建中间件以进行路由的好教程?一般有吗?

3)关于更好的方法的建议(如果有的话)。

这些公司是必要的,因为我们不想将任何内容硬编码到 web.config 文件中。基本上,该应用将包含所有公司的信息,并且使用该路由将获取元数据,例如相关的连接字符串。

任何建议都会很棒!我知道这可能不是通常的帖子,但我不知道去哪里看。我没有通过标准手段(谷歌和MSDN)找到任何有用的东西,除非我只是忽略了一个简单的概念。

您是否尝试过在 Web API 2 中查看 ASP.NET 属性路由

这将允许您在控制器上设置路由前缀以满足您正在寻找的内容。

[RoutePrefix("api/{companyName}")]
public class CustomerController : ApiController {
    // GET api/MyCompany/products
    [Route("products")]
    public IEnumerable<Product> GetProducts(string companyName) { ... }
    // GET api/MyCompany/orders
    [Route("orders")]
    public IEnumerable<Order> GetOrders(string companyName) { ... }
    ....
}

如果您通读上述链接,您将看到如何设置它并根据需要使用它。

最新更新