2016-02-23 19 views
9

Używam ASP.NET i Swagger, który udostępnia typ złożony, który akceptuje POST. Ma pewną liczbę pól łańcuchowych o różnych ograniczonych długościach. Jak mogę to odzwierciedlić w interfejsie użytkownika Swagger?Adnotacje danych w Swagger

Odpowiedz

12

Możesz opisać właściwości za pomocą StringLengthAttribute z System.ComponentModel.DataAnnotations.

Na przykład:

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

staną:

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

I tak:

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

staje:

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

Oprócz StringLength Swashbuckle obsługuje również atrybuty Range i RegularExpression.

Aktualizacja

MaxLength nie działa. StringLength ma. Jednak odkrywanie tych informacji w interfejsie użytkownika Swagger jest nieco niezręczne. Musisz przejść do Model swojego obiektu, a następnie najedź nieruchomości:

How to discover max length info

+0

Dzięki. Używałem atrybutu MaxLength. Ale nie wyświetlają "maxLength": 10 części w interfejsie Swagger. – illug

+0

Zgadzam się, że jest trochę niezgrabny. Bit hover nawet nie działa, gdy masz więcej niż jedną z tych adnotacji. Będą się układać jeden na drugim, a ty nie wiesz, do którego pola się odnoszą. Dziękuję za wspaniałą odpowiedź. – illug

+0

Najnowsza wersja stabilnej wersji 'Swashbuckle' zawiera nową wersję' Swagger UI', która naprawia skumulowane pudełka. – venerik

Powiązane problemy