Sto usando ASP.NET e Swagger che espone un tipo complesso che accetta un POST. Ha un numero di campi stringa con lunghezze diverse. Come posso rifletterlo nell'interfaccia utente di Swagger?Annotazioni dei dati in Swagger
9
A
risposta
12
È possibile annotare le proprietà con StringLengthAttribute
da System.ComponentModel.DataAnnotations
.
Per esempio:
[StringLength(10)]
public String Name {get;set;}
diventerà:
"name": {
"minLength": 0,
"maxLength": 10,
"type": "string"
}
E questo:
[StringLength(10, MinimumLength = 5)]
public String Name {get;set;}
diventa:
"name": {
"minLength": 5,
"maxLength": 10,
"type": "string"
}
Oltre allo StringLength
, lo Swashbuckle supporta anche gli attributi Range
e RegularExpression
.
Aggiornamento
MaxLength
non funziona. StringLength
fa. Tuttavia, scoprire queste informazioni nell'interfaccia utente di Swagger è un po 'goffo. Bisogna passare alla Model
del vostro oggetto e poi il mouse sopra la proprietà:
Grazie. Stavo usando l'attributo MaxLength. Ma nessuno dei due mostra "maxLength": 10 parti nell'interfaccia utente di Swagger. – illug
Sono d'accordo che è un po 'maldestro. Il bit al passaggio del mouse non funziona nemmeno quando hai più di una di queste annotazioni. Si impilano l'uno sull'altro e non si sa a quale campo si riferiscono. Grazie per un'ottima risposta però. – illug
L'ultima versione stabile di 'Swashbuckle' incorpora una nuova versione di' Swagger UI' che corregge le scatole impilate. – venerik