【问题标题】:Set route's Order precedence in Minimal APIs using RouteEndpointBuilder ASP.NET Core 6使用 RouteEndpointBuilder ASP.NET Core 6 在 Minimal API 中设置路由的顺序优先级
【发布时间】:2021-12-30 10:17:10
【问题描述】:

我正在尝试设置使用 app.Map(..) 在最小 API 中定义的路线的顺序(具有相同的路径:api/v1/users),方法是为两个定义提供顺序,以便一次只使用一个

我正在使用以下代码:

    var endPt1 = new RouteEndpointBuilder(emptyDelegate, RoutePatternFactory.Parse("/api/v1/users"), 1);
    app.Map(endPt1.RoutePattern, getUser1);

    var endPt2 = new RouteEndpointBuilder(emptyDelegate, RoutePatternFactory.Parse("/api/v1/users"),2);
    app.Map(endPt2.RoutePattern, getUser2);

RoutePattern.InboundPrecedence 中 endPt1、endPt2 的值相同。

如何正确设置顺序,以便在同一路径的同一时间,只调用一个具有较低顺序优先级的路由?

回购链接:Code Link on github 路径:\AppNet6\Modules

【问题讨论】:

    标签: asp.net-core routes asp.net-core-webapi .net-6.0


    【解决方案1】:

    通过约定配置 EndpointBuilder 可以解决这个问题:

    app.Map("/api/v1/users", emptyDelegate).Add(static builder => ((RouteEndpointBuilder)builder).Order = 1)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-13
      • 2017-04-21
      • 2022-12-14
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多