Рамки, такие как ASP.NET или Nancy, предоставляют синтаксис, который можно использовать для указания маршрутов, например:
MapRoute("/customers/{id}/invoices/{invoiceId}", ...)
В маршрутах ASP.NET работают в двух направлениях. Они могут сопоставлять URL-адрес запроса, такой как /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
Мой вопрос: может ли синтаксис, указанный в RFC 6570, использоваться для маршрутизации запроса соответствовать? Есть ли часть синтаксиса, которая сделает его неоднозначным для соответствия данному URI заданному шаблону URI? Существуют ли библиотеки, поддерживающие соответствие URI шаблону URI?