Data annotations in Swagger

后端 未结 1 1604
长发绾君心
长发绾君心 2020-12-18 19:25

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 th

相关标签:
1条回答
  • 2020-12-18 20:08

    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:

    0 讨论(0)
提交回复
热议问题