Ich verwende Spring MVC (über Spring Boot) und integrierte Swagger API-Dokumentation mit der Swagger-Spring-MVC-Bibliothek.Wie @ApiModelProperty dataType auf String für Swagger-Dokumentation
Ich habe eine Klasse, die etwa wie folgt aussieht:
@ApiModel
public class CartItem {
...
private Money listPrice; // joda money class
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(required = true, dataType = "java.lang.String")
public Money getListPrice() {
return listPrice;
}
...
}
Da ich die ToStringSerializer für dieses Feld verwendet wird, es listPrice.toString im JSON ist zurückkehrt, mit anderen Worten:
{
"listPrice": "USD 10.50"
}
Die Swagger-Dokumentation berücksichtigt jedoch nicht dataType = "java.lang.String". Es zeigt das Antwortmodell als:
"CartItem": {
"description": "",
"id": "CartItem",
"properties": {
"listPrice": {
"required": false,
"type": "Money"
}
}
}
ich versucht habe, die @ApiModelProperty Anmerkung auf dem Feld als auch die Methode setzen, und in beiden Fällen sind das required
Feld respektiert wird, aber das dataType
Feld ignoriert. Ich habe auch versucht, "String", "string" und "java.lang.String" für den dataType zu verwenden, aber keiner von denen hat funktioniert.
Fehle ich etwas, oder ist das nur ein Fehler in der Bibliothek swagger-spring-mvc?
Sie sind richtig, dass es jetzt in 2.0.x (erhältlich in 2.0.0-SNAPSHOT) unterstützt wird, mit einigen Einschränkungen . Der Datentyp muss eine gültige paketqualifizierte Klasse sein. –
Dank @DilipKrishnan. Ich sehe, dass die Dokumentation zu github aktualisiert wurde, um auch die Änderung widerzuspiegeln. – nerdherd