使用 Swashbuckle 定义意外参数
Unexpected parameters definition using Swashbuckle
我有这样的控制器
[HttpGet]
public Task<IActionResult> GetCsvAudit([FromQuery] ReportDto request)
{
return Task.FromResult<IActionResult>(Ok());
}
public class ReportDto
{
public DateTimeRange ActionDateRange { get; set; }
public PhiResourceType OrderBy { get; set; }
public string PhiResourceTypeIdentifier { get; set; }
}
DateTimeRange 为 Swagger 配置如下:
c.MapType<DateTimeRange>(() => new OpenApiSchema()
{
Description = "Date range",
Type = "string",
Title = "Date range",
Example = new OpenApiString("2020-11-15T00:42:13+00:00 - 2020-11-16T00:42:13+00:00"),
});
问题是当我使用 [FromQuery]
属性时,Swagger 仍然希望我在查询中提供每个 DateTimeRange 属性,而我希望它期望我提供字符串 2020-11-15T00:42:13+00:00,2020-11-16T00:42:13+00:00
为了它。
如果您将 field/property 标记为 internal
或 protected
或 private
,它会被 swagger 文档中的 swashbuckle 自动忽略:
public class DateTimeRange
{
internal string Start { get; set; }
internal string End { get; set; }
}
结果:
我有这样的控制器
[HttpGet]
public Task<IActionResult> GetCsvAudit([FromQuery] ReportDto request)
{
return Task.FromResult<IActionResult>(Ok());
}
public class ReportDto
{
public DateTimeRange ActionDateRange { get; set; }
public PhiResourceType OrderBy { get; set; }
public string PhiResourceTypeIdentifier { get; set; }
}
DateTimeRange 为 Swagger 配置如下:
c.MapType<DateTimeRange>(() => new OpenApiSchema()
{
Description = "Date range",
Type = "string",
Title = "Date range",
Example = new OpenApiString("2020-11-15T00:42:13+00:00 - 2020-11-16T00:42:13+00:00"),
});
问题是当我使用 [FromQuery]
属性时,Swagger 仍然希望我在查询中提供每个 DateTimeRange 属性,而我希望它期望我提供字符串 2020-11-15T00:42:13+00:00,2020-11-16T00:42:13+00:00
为了它。
如果您将 field/property 标记为 internal
或 protected
或 private
,它会被 swagger 文档中的 swashbuckle 自动忽略:
public class DateTimeRange
{
internal string Start { get; set; }
internal string End { get; set; }
}
结果: