URI 模板可以用于将 URI 与路由匹配吗?

2024-01-21

ASP.NET 或 Nancy 等框架提供了可用于指定路由的语法,例如:

MapRoute("/customers/{id}/invoices/{invoiceId}", ...)

在 ASP.NET 中,路由有两个方向。他们能match请求 URI,例如/customers/32/invoices/19到一条路线,他们可以resolve参数如{ id: 37, invoiceId: 19 }到 URI 中。

RFC 6570:URI 模板 https://www.rfc-editor.org/rfc/rfc6570还为 URI 定义了一个类似但更丰富的规范,通常用于resolveURI 的。例如:

UriTemplate("/customers/{id}/invoices{/invoiceId}{?sort}", { id: 37, invoiceId: 19, sort: 'asc' } )
// returns:  /customers/37/invoices/19?sort=asc

我的问题是,RFC 6570 中指定的语法可以用于match请求路由的 URI?语法中是否有一部分会使给定 URI 与给定 URI 模板的匹配变得不明确?是否有任何库支持将 URI 与 URI 模板匹配?


我怀疑这会非常困难。当然,诸如前缀语法之类的东西将导致无法重新生成原始参数。

对于路径段扩展之类的事情

 {/list*}           /red/green/blue

您如何知道路径的哪些部分是文字以及哪些部分是参数的一部分? URITemplate 规范中有很多相当奇怪的行为,我怀疑即使可以匹配,它也会相当昂贵。

您有兴趣出于路由目的这样做吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

URI 模板可以用于将 URI 与路由匹配吗? 的相关文章

随机推荐

  • onDrag 事件 clientX 在 Firefox 中始终为 0

    我在codesandbox io上创建了一个视频播放器进度条 https codesandbox io s seekbar with thumbnail and time tooltips forked h5x8k file src Pro
  • 具有圆角 xml 形状的蒙版布局

    我有这个 LinearLayout
  • 钻取在 birt 报告中的 SpagoBI 服务器中不起作用

    这是birt报告中超链接的设置 用于计算参数的脚本如下 if params idContratto match row contract number toString null if params idContratto value ab
  • JSF 1.2 Action 和 ActionListener 中的异常之间的区别

    我注意到 JSF 1 2 当actionListener方法中抛出异常时不返回错误页面 但当action方法中抛出异常时返回错误页面 这是为什么 在这两种情况下它都能返回错误页面吗 任何抛出的异常FacesEvent http downlo
  • 仅 AJAX 访问

    我最近开始在 PHP 中编写大量支持 AJAX 的脚本 问题是 AJAX 调用访问的文件也可以直接使用 如何禁用它 您无法可靠地阻止这种情况的发生 真正的关键是不要将某人直接访问此文件视为安全问题 对此做好计划 您将处于一个更加安全的地方
  • 当传递到 ASP.NET Core 2.2 中的 [FromForm] 使用的模型时,GUID 列表为空

    EDIT 问题在于招摇 请参阅我自己的解决方法的答案 我目前在使用 HTTP POST 和将 GUID 列表传递给控制器 操作时遇到一些问题 FromForm 指南列表是空的 如果我尝试将其转换为字符串列表 则列表中只会显示 1 个值 而不
  • 导入自定义 npm 包会导致空/空对象

    我可以在同一个包中导入 MyComponent 并将其呈现在页面上 但无法链接或下载 MyComponent 包并导入该组件 包 json name my component version 1 0 0 main dist index js
  • 图像的 Blob URL

    我怎样才能 保存 这个图像 blob https 3A theta360 com 473c6400 b8e7 4c41 8f7a 90f03cbc8787 发现于 https theta360 com s lE2in9qQDK6j2CcjP
  • Java 语言规范 - 无法理解“BlockStatement”

    我一直在研究 Java 语言规范here http java sun com docs books jls second edition html syntax doc html 相反 我应该出去喝杯啤酒 并且我很好奇一个方法可以包含什么
  • 在 Qt、QtCreator 和 QMake 中配置 GCC 编译器开关

    我最近尝试使用Qt创建者 http en wikipedia org wiki Qt CreatorWindows 7 64 位 上的 1 3 2 Qt 4 6 2 和 GCC 4 4 0 32 位版本 使用一些实验性 C 0x 扩展来编译
  • 如何在heroku上部署夹层?

    我创建了一个夹层项目 其名称为 mezzanine heroku test 我创建了一个 Procfile 其内容如下 网络 python manage py run gunicorn b 0 0 0 0 PORT w 3 接下来 我访问网
  • JPQL 中的 LEFT JOIN ON()

    我有两个实体 User id long name String Player id long owner User 点 int 现在我想在一个 JPQL 查询中选择一个用户及其关联的玩家 在 SQL 中我会这样做 SELECT u p FR
  • 在使用 R 进行 PCA 分析之前省略 NA 和数据插补

    我正在尝试使用进行 PCA 分析princompR 中的函数 下面是示例代码 mydf lt data frame A c NA rnorm 10 4 5 B c NA rnorm 9 4 5 NA C c NA NA rnorm 8 4
  • Pyspark 根据另一个数据帧替换数组列上的值

    我有两个数据框 一个仅包含一些独特的数据框ids与相关的names像这样 Id name 0 name a 1 name b 2 name c 第二个数据帧包含存储在数组中的第一个数据帧的 id 每行 Row 1 row 2 0 0 2 1
  • Canvas绘制速度非常慢

    我想显示带有标记的比例尺 效果很好 最重要的是 我还想用红色指示器在刻度中显示鼠标位置 因此 我在运行应用程序时绘制画布 然后在更改鼠标位置时重新绘制整个画布 我是画布新手 不明白我的代码有什么问题 我一直在尝试解决它但没有运气 问题可能出
  • SwiftUI 可选环境对象

    我在用着 EnvironmentObject像这样 struct MyView View EnvironmentObject var object MyObject 但我的代码不需要有值object 仅将其设为可选是行不通的 甚至无法编译
  • 使用 RankNTypes 和 TypeFamilies 的非法多态或限定类型

    我一直在慢慢地致力于移植llvm https github com alphaHeavy llvm包使用数据类型 类型族和类型 nats 并在尝试删除用于对值进行分类的两种新类型时遇到了一个小问题 ConstValue and Value
  • 进程的开始时间

    如何使用 C 代码检索进程的启动时间 如果可能的话 我还想知道如何使用 Widows 内置的功能来做到这一点 public DateTime GetProcessStartTime string processName Process p
  • 在数据库表中存储整数或字符串之间的区别

    我关心性能 工程和可读性 假设我有一个博客 每个帖子都有其状态 已发布 4 待审核 2 草稿 1 建议将这些信息存储在什么位置status column status lt storing status as string pending
  • URI 模板可以用于将 URI 与路由匹配吗?

    ASP NET 或 Nancy 等框架提供了可用于指定路由的语法 例如 MapRoute customers id invoices invoiceId 在 ASP NET 中 路由有两个方向 他们能match请求 URI 例如 custo