我有一个Web Api 2项目,它有一个HttpGet方法,它以复杂对象列表作为参数。像这样:
[HttpGet]
public string GetCoolStuff(List<ContainerContract> containers)
我正在使用swashbuckle来设置我的招摇文档。但它将此参数设置为:
{
"name" : "containerContracts",
"in" : "query",
"required" : true,
"type" : "array",
"items" : {},
"collectionFormat" : "multi"
}
至少items
对象似乎需要它。
稍后在definitions
部分,我确实找到了这个:
"ContainerContract" : {
"type" : "object",
"properties" : {
"Type" : {
"type" : "string"
},
"Temperature" : {
"type" : "string"
},
"CreatedWhen" : {
"format" : "date-time",
"type" : "string"
}
}
但它似乎没有被使用......
有没有一种方法可以让我这样设置让他们明白这是一个对象列表,并为我提供了输入各个属性值的方法?(就像我对复杂对象一样)这不是清单。)
以下是我在图片中的含义:
或者Swagger Ui不是那么聪明吗? (如果我必须写Json来填写我的名单,那么我可以。)
重要的是,这是ContainerContract
的一个例子:
public class ContainerContract
{
public string Type { get; set; }
public char Temperature { get; set; }
public DateTime CreatedWhen { get; set; }
}
答案 0 :(得分:3)
遗憾的是,在2.0规范(Swashbuckle使用)中,即使在数组中,也不能在查询参数中包含复杂对象。因此,在下一个版本之前不支持您要做的事情。您可以拥有一个数组,但items
必须是原始值类型。