[HttpGet("date/{pubdate:datetime}")]
public IActionResult GetBooks(DateTime pubdate)
{
return Ok("有效日期參數");
}
文章內有兩種特殊情況
情況一:參數為 01 Feb 2022 可以順利通過
路由限制:Regex
除了 datetime 路由限制外,再加上 regex 來限定日期格式,以該範例來說,參數應為 2022-02-01,複合路由限制只要透過 : 符號串接就行
[HttpGet("date/{pubdate:datetime:regex(\\d{{4}}-\\d{{2}}-\\d{{2}})}")]
public IActionResult GetBooks(DateTime pubdate)
{
return Ok("有效日期參數");
}
此時輸入 01 Feb 2022 就會變成 404 NotFound 囉路由限制:參數有 / 符號
該範例最重要重點,要讓參數 2022/02/01 不會被解析為路由,必須在參數前加上 * 符號
[HttpGet("date/{pubdate:datetime:regex(\\d{{4}}-\\d{{2}}-\\d{{2}})}")]
[HttpGet("date/{*pubdate:datetime:regex(\\d{{4}}/\\d{{2}}/\\d{{2}})}")]
public IActionResult GetBooks(DateTime pubdate)
{
return Ok("有效日期參數");
}
沒有留言:
張貼留言