为什么要在 Web API 中指定路由参数类型
本文关键字:路由 参数 类型 Web API 为什么 | 更新日期: 2023-09-27 17:56:30
我有一个带有路由参数的 web api 端点。它适用于或不带路由参数类型。我只想知道为什么要在下面的代码中指定这个?
[HttpGet]
[Route("{myId:int}")]
public HttpResponseMessage GetData([FromUri] int myId)
{
//code here
}
此片段[Route("{myId:int}")]
.为什么要指定 int?这个[FromUri] int myId
中已经有一个整数.路由的int不是多余的吗?这有什么原因吗?
请看这个例子:
[Route("users/{id:int}"]
public User GetUserById(int id) { ... }
[Route("users/{name}"]
public User GetUserByName(string name) { ... }
在这里,仅当 URI 的"id"段为整数时,才会选择第一个路由。否则,将选择第二条路线。
所以在您的情况下,这不是必需的。但是,如果您需要更智能的路由解析,这将是必要的。您可以使用许多不同的约束。例如{x:minlength(10)}
- 最小长度为 10 的字符串。 {x:max(10)}
- 匹配最大值为 10 的整数。 {x:regex(^'d{3}-'d{3}-'d{4}$)}
- 正则表达式约束等
您可以在文档中找到所有可用的约束。