Pau*_*ell 10 asp.net asp.net-mvc routing uritemplate
像ASP.NET或Nancy这样的框架提供了可用于指定路由的语法,例如:
MapRoute("/customers/{id}/invoices/{invoiceId}", ...)
Run Code Online (Sandbox Code Playgroud)
在ASP.NET中,路由工作在两个方向.它们可以匹配请求URI(例如 /customers/32/invoices/19
路由),并且可以将参数解析为{ id: 37, invoiceId: 19 }
URI.
RFC 6570:URI模板还定义了一个类似的,虽然更丰富的URI规范,通常用于解析 URI.例如:
UriTemplate("/customers/{id}/invoices{/invoiceId}{?sort}", { id: 37, invoiceId: 19, sort: 'asc' } )
// returns: /customers/37/invoices/19?sort=asc
Run Code Online (Sandbox Code Playgroud)
我的问题是,RFC 6570中指定的语法是否可用于将请求URI与路由匹配?是否有一部分语法会使给定的URI与给定的URI模板匹配变得模糊不清?是否有任何库支持将URI与URI模板匹配?
我怀疑这会非常困难。当然,诸如前缀语法之类的东西将导致无法重新生成原始参数。
对于路径段扩展之类的事情
{/list*} /red/green/blue
Run Code Online (Sandbox Code Playgroud)
您如何知道路径的哪些部分是文字以及哪些部分是参数的一部分?URITemplate 规范中有很多相当奇怪的行为,我怀疑即使可以匹配,它也会相当昂贵。
您有兴趣出于路由目的这样做吗?
归档时间: |
|
查看次数: |
608 次 |
最近记录: |