我正在处理一个看起来像这样的端点:
GET {{url}}/v1.0/GroupsInfo/StuffToGet/1/2/hea
其中 2 个整数是特定的 id,最后的文本是搜索词。
我希望最后一个参数(搜索文本)是可选的。我已经使用以下方法完成了这项工作,但在 Swagger 中它似乎不是强制性的:
[Route("[action]/{catId:int}/{dogId:int}/{search?}")]
public IActionResult StuffToGet(int catId, int dogId, string search)
{
// do stuff
}
Swagger 忽略了路由约束中 Search 参数末尾的问号。
这是一个已知问题,还是我需要纠正一些自定义代码才能让 Swagger 识别该可选标志?
您的变体将正常工作,但如果您对 swagger 有疑问,请尝试此操作
[Route("[action]/{catId:int}/{dogId:int}]
[Route("[action]/{catId:int}/{dogId:int}/{search}")]
public IActionResult StuffToGet(int catId, int dogId, string search)
{
// do stuff
}
或者这个
[Route("StuffToGet/{catId:int}/{dogId:int}/{search}")]
public IActionResult StuffToGet(int catId, int dogId, string search)
{
// do stuff
}
[Route("StaffToGet/{catId:int}/{dogId:int}]
public IActionResult StuffToGet(int catId, int dogId)
{
return StuffToGet(catId, dogId,string.empty);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句