我有一个包含以下端点的 ASP.NET Core Web API。
[HttpGet]
[Route("models/{ids}")]
[Produces(typeof(IEnumerable<Model>))]
public IActionResult Get
(
[ModelBinder(typeof(CsvModelBinder<string>))] IEnumerable<string> ids
)
{
// Get models
return Ok(models);
}
此端点采用 CSV 的 Id 列表(例如/models/a,b,c
)并返回相应Model
对象的 JSON 数组。 CsvModelBinder<string>
是IModelBinder
我编写的一个自定义实现,它将 Id 的 CSV 列表拆分为一个IEnumerable<string>
我可以在我的查询中使用的来查找对象。这一切都很好。
我现在要做的是使用 NSwag 生成客户端库,但这证明是有问题的,因为 Swashbuckle 正在生成 Swagger,它将ids
参数描述为IEnumerable<string>
,而不是string
.
选项 A:有没有办法告诉 Swashbuckle 将参数描述为 astring
而不是 a IEnumerable<string>
?
选项 B:有没有办法告诉 NSwagIEnumerable<string>
在生成请求 URL 时应该将此参数编组为 CSV?