Ich benutze Springfox-swagger, um eine Swagger-Seite für meine Spring Boot REST-Service zu generieren. Als Teil eines meines POJOs, dass ich zu JSON serialise ich benutze:Springfox Swagger Generation erstellt ungerade Schema
javax.money.MonetaryAmount
java.time.LocalDate
Die Frage, die ich zu sehen bin, ist, dass in Swagger, das Modell und Modell Shema tabs zeigen für die Antwort die Details der Implementierung dieser Felder, nämlich
LocalDate {
chronology (IsoChronology, optional),
dayOfMonth (integer, optional),
dayOfWeek (string, optional) = ['MONDAY' or 'TUESDAY' or 'WEDNESDAY' or 'THURSDAY' or 'FRIDAY' or 'SATURDAY' or 'SUNDAY'],
dayOfYear (integer, optional),
era (Era, optional),
leapYear (boolean, optional),
month (string, optional) = ['JANUARY' or 'FEBRUARY' or 'MARCH' or 'APRIL' or 'MAY' or 'JUNE' or 'JULY' or 'AUGUST' or 'SEPTEMBER' or 'OCTOBER' or 'NOVEMBER' or 'DECEMBER'],
monthValue (integer, optional),
year (integer, optional)
}
IsoChronology {
calendarType (string, optional),
id (string, optional)
}
Era {
value (integer, optional)
}
und
MonetaryAmount {
context (MonetaryContext, optional),
currency (CurrencyUnit, optional),
factory (MonetaryAmountFactory«MonetaryAmount», optional),
negative (boolean, optional),
negativeOrZero (boolean, optional),
number (NumberValue, optional),
positive (boolean, optional),
positiveOrZero (boolean, optional),
zero (boolean, optional)
}
MonetaryContext {
(...)
}
CurrencyUnit {
(...)
}
CurrencyContext {
(...)
}
MonetaryAmountFactory«MonetaryAmount» {
(...)
}
NumberValue {
(...)
}
Ich verwende die Moneta 1.1 Implementierung von javax.money.MonetaryAmount
(JSR 354), wenn das wichtig ist.
Nun, das ist weit zu ausführlich für das, was ich will, also habe ich einen Serialisierer implementiert, und meine Antwort (und Anfragen) funktionieren wie erwartet. Die Schemas spiegeln dies jedoch nicht wider. Gibt es eine Möglichkeit, das Format der Schemas nach dem Serialisieren der Anfragen zu konfigurieren?
Als ich feststelle, dass es ziemlich viele bewegliche Teile zu diesem Problem gibt, habe ich ein proof of concept project geschaffen, um das Problem in seinem vollen Ruhm zu zeigen.
Großartig, danke. Gibt es eine Möglichkeit, mehr lokalisierte Substitution zu tun? I.e. LocalDate -> String ein Ort und LocalDate -> Long in einem anderen? – kinbiko
Die Antwort gefunden: Sie können '@ApiModelProperty (dataType =" com.qualified.ReplacedWith ")' auf den Gettern des POJO verwenden. – kinbiko
Es tut uns leid, dass Sie nicht früher geantwortet haben. Das hätte ich vorgeschlagen –