【问题标题】:Owin Custom Routing MIddleware in ASP.NET Web Api 2.0ASP.NET Web Api 2.0 中的 Owin 自定义路由中间件
【发布时间】:2016-02-22 23:23:12
【问题描述】:

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

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

2) 有没有什么好的教程可以通过 OWIN 构建中间件进行路由?一般有吗?

3) 如果有更好的方法,请提出建议。

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

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

【问题讨论】:

    标签: c# asp.net asp.net-web-api routing owin


    【解决方案1】:

    您是否尝试过调查Attribute Routing in ASP.NET Web API 2

    这将允许您在控制器上设置路由前缀以满足您的需求。

    [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) { ... }
    
        ....
    }
    

    如果您阅读了上述链接,您将了解如何设置它并根据需要使用它。

    【讨论】:

    • 谢谢!我去看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    相关资源
    最近更新 更多