问题描述
在我的控制器中,有一种方法接受一个路由和一个查询参数作为参数:
/// <summary>
/// My Method
/// </summary>
/// <param name="routeParameter">Nice description of route parameter.</param>
/// <param name="queryParameter">Nice description of query paramter.</param>
[HttpPost("somePath/{routeParameter}")]
public IActionResult MyMethod([FromRoute] string routeParameter,[FromQuery] DateTime queryParamter)
{
// do something
}
在通过Swashbuckle XML从此签名生成的OpenApi.json / Swagger中,始终需要routeParameter
(路径),但是queryParameter
(查询)被标记为可选。
我如何也可以根据需要标记查询参数?
解决方法
我如何也将查询参数标记为必需?
只需使用 [FromQuery,BindRequired] ,如下所示:
SpringApplication
这是测试结果:
,这里是[FromUri]
的替代方法,用于接收您的参数
[HttpPost("somePath")]
public IActionResult MyMethod([FromUri] Paging paging,[FromUri] QueryParam param)
{
// do something
}
QueryParam.cs
public class QueryParam
{
[Required]
public string routeParameter{ get; set; }
}
Swagger用户界面