Używam Spring MVC (przez Spring Boot) i mam zintegrowaną dokumentację API Swagger przy użyciu biblioteki swagger-spring-mvc.Jak ustawić @ApiModelProperty dataType na ciąg do dokumentacji Swagger
Mam klasy, który wygląda mniej więcej tak:
@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;
}
...
}
Ponieważ używam ToStringSerializer na tym polu, to powrót listPrice.toString w JSON, innymi słowy:
{
"listPrice": "USD 10.50"
}
Jednak dokumentacja przechwytu nie honoruje parametru dataType = "java.lang.String". To pokazuje model odpowiedzi jak:
"CartItem": {
"description": "",
"id": "CartItem",
"properties": {
"listPrice": {
"required": false,
"type": "Money"
}
}
}
Próbowałem umieszczenie adnotacji @ApiModelProperty na boisku, jak i sposobu, w obu przypadkach pole required
jest przestrzegane, ale pole dataType
jest ignorowany. Próbowałem również używać "String", "string" i "java.lang.String" dla dataType, ale żaden z nich nie zadziałał.
Czy brakuje mi czegoś, czy to tylko błąd w bibliotece swagger-spring-mvc?
Masz rację, że to teraz obsługiwane w 2.0.x (dostępny w 2.0.0-SNAPSHOT), z pewnymi zastrzeżeniami . Typ danych musi być prawidłową klasą kwalifikowaną pakietu. –
Dzięki @DilipKrishnan. Widzę, że dokumentacja na github została zaktualizowana, aby odzwierciedlić również zmianę. – nerdherd