【发布时间】:2018-03-27 15:32:10
【问题描述】:
[HttpGet]
[Route("students")]
[SwaggerOperation(Tags = new[] { "Student" })]
[SwaggerResponse(HttpStatusCode.OK, Type = typeof(ResponseModel<IList<Student>>))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(StudentResponseExample))]
[SwaggerResponse(HttpStatusCode.InternalServerError)]
public IHttpActionResult SearchStudent()
{
IDictionary<string, string> searchParams = null;
searchParams = ControllerContext.GetQueryStrings();
.
.
.
}
上面的 API 有三个可选参数,它们将作为查询字符串传递
- SyncDate - 长
- OffSet - int
- 限制 - 整数
用户没有选项可以在 swagger UI 中输入这些可选的查询参数。请指导我实现可选的查询参数。
我正在使用 swashbuckle,我更喜欢使用注释,而不是在每个 API 方法上使用冗长的注释部分来实现大摇大摆的功能。
我参考了以下Adding Query String Params to my Swagger Specs 并在 Web API 的 Filters 文件夹中创建了 SwaggerParameterAttribute 类,并尝试在其中添加 OperationFilter GlobalConfiguration.Configuration .EnableSwagger 作为给定,它抛出类型或命名空间名称 SwaggerParametersAttributeHandler 找不到。我什至添加了 Filters 文件夹命名空间,但错误仍然存在。
请指导如何在swagger中实现可选查询参数
【问题讨论】:
标签: c# asp.net-web-api swagger swashbuckle