I am using ASP.NET and Swagger that exposes a complex type that accepts a POST. It has a number of string fields that have different restricted lengths. How can I reflect that in the Swagger UI?
You can annotate the properties with the StringLengthAttribute
from System.ComponentModel.DataAnnotations
.
For instance:
[StringLength(10)]
public String Name {get;set;}
will become:
"name": {
"minLength": 0,
"maxLength": 10,
"type": "string"
}
And this:
[StringLength(10, MinimumLength = 5)]
public String Name {get;set;}
becomes:
"name": {
"minLength": 5,
"maxLength": 10,
"type": "string"
}
Besides StringLength
Swashbuckle also supports the Range
and RegularExpression
attributes.
Update
MaxLength
does not work. StringLength
does. However, discovering this information in Swagger UI is a bit clumsy. You have to navigate to the Model
of your object and then hover over the property: