Web API 2.0 动态路由

本文关键字:动态 路由 API Web | 更新日期: 2023-09-27 18:37:07

假设我有一个使用动态文件夹结构来存储资源的文件系统:

api/media/videos/file1.avi
api/media/pictures/pic1.png
api/documents/papers/math/paper1.txt

如您所见,url 上有一个动态部分,在/api 和 {filename} 参数之后:

/api/*/{filename}

我目前正在使用 WebApi 2.0 注释:

[Route("api/data/{filename}")]

等等。但它仅适用于"编码"路由。

如何使用这些注释实现"动态"路由?

谢谢!

Web API 2.0 动态路由

不确定这是否是最佳实践,但我已通过使用 global.asax 文件中的 Application_BeginRequest 方法完成了此操作。您可以使用 Context.RewritePath 将传入的 url 映射到您网站中您喜欢的任何内容。您只需要编写代码来解析传入的 url 并进行所需的修改。