2016-02-23 41 views
9

'daki veri ek açıklamaları ASP.NET ve Swagger kullanarak bir POST kabul eden karmaşık bir tür açığa çıkarıyorum. Farklı kısıtlı uzunluklara sahip bir dizi dize alanı vardır. Bunu Swagger UI'de nasıl yansıtabilirim?Swagger

cevap

12

System.ComponentModel.DataAnnotations'dan StringLengthAttribute ile ilgili özelliklere açıklama ekleyebilirsiniz. Örneğin

:

"name": { 
    "minLength": 0, 
    "maxLength": 10, 
    "type": "string" 
} 

Ve bu:

[StringLength(10)] 
public String Name {get;set;} 

olacak

[StringLength(10, MinimumLength = 5)] 
public String Name {get;set;} 

olur:

"name": { 
    "minLength": 5, 
    "maxLength": 10, 
    "type": "string" 
} 

StringLength Swashbuckle ayrıca Range ve RegularExpression özniteliklerini de destekler.

Güncelleme

MaxLength çalışmaz. StringLength yapar. Ancak, bu bilgiyi Swagger UI'de keşfetmek biraz beceriksizdir.

How to discover max length info

+0

Teşekkür: Eğer nesnenin Model gidin ve ardından mülkiyet üzerinde gezdirin gerekiyor. MaxLength özniteliğini kullanıyordum. Ama ne "maxLength" görüntüler: Swagger UI'de 10 bölüm. – illug

+0

Katılıyorum biraz hantal. Bu ek açıklamalardan daha fazlasına sahip olduğunuzda, hover bit'i gerçekten işe yaramaz. Birbirlerinin üstüne yığılacaklar ve hangi alandan söz ettiklerini bilmiyorsunuz. Yine de müthiş bir cevap için teşekkürler. – illug

+0

En son sürüm "Swashbuckle" sürümünün sürümü, yığılmış kutuları düzelten yeni bir Swagger UI sürümü içerir. – venerik