在Swagger UI中指示复杂输入参数对象的必需属性

时间:2016-12-22 11:49:00

标签: c# .net swagger swashbuckle

在这个方法中

public class Foo {
    Object getX() {
        ...
    }
}

public class Bar {

    public Bar(Object x) {
        ...
    }
}

/// <summary> /// Gets activity logs. /// </summary> /// <param name="locationId">Location id.</param> /// <param name="filter">Activity log filter options.</param> /// <response code="200">OK</response> [ResponseType(typeof(ActivityLogResponse))] public async Task<HttpResponseMessage> FetchActivityLogs(int locationId, ActivityLogFilterOptions filter) { } 有一些必需的属性,有些是可选的。有没有办法在Swagger UI API参数中指明这一点?

ActivityLogFilterOptions类:

ActivityLogFilterOptions

enter image description here

1 个答案:

答案 0 :(得分:4)

是的,如果您使用RequiredAttribute修饰API模型的属性,那么该属性将不会在Swagger UI中显示为“可选”:

[Required]
[JsonProperty(PropertyName = "your_property")]
 public string YourProperty {get; set;}

对于复杂对象,您可以通过单击“参数”部分的“数据类型”列中的“模型”而不是“示例值”来查看模型上属性的可选性。