swagger Feld Datum vs-Datum-Uhrzeit-Feld
Ich bin mit swagger zu testen, meine rest-api, eine der Eigenschaft meiner Person-Klasse ist ein Datumsfeld aus, das ich benötige das Datum im yyyy-mm-dd-format , aber swagger Modell schema zeigt dieses Feld als Datum-Zeit statt date-Feld, also es gibt Datum mit Uhrzeit und zone. Wie kann ich umwandeln dieses Datum-Zeit in date-Feld ?
Ich habe ein java-entity-Klasse, TimeEntry.java eines seiner Eigenschaft Date, sieht es so aus.
@ApiModelProperty(required = true)
@JsonFormat(pattern = DATE_FORMAT)
private Date date;
für dieses Feld, auf dem swagger-UI-Modell schema, das Feld Datum zeigt, wie "Datum": "2016-01-08T22:34:22.337 Z" aber ich brauche diese als "Datum":"2016-01-08" .
Ich habe versucht, die folgenden:
1.
@ApiModelProperty(required = true, dataType="date")
@JsonFormat(pattern = DATE_FORMAT)
private Date date;
2.Versucht Sie, die Folgen dieser code (überschreiben OverrideConvertor-Klasse), konnte aber nicht finden, Fors-core 1.3 version mvn repo. Nur verfügbar ist version 1.5 https://github.com/swagger-api/swagger-core/wiki/overriding-models
- Anscheinend von der version 1.5, die Sie entfernt haben, die OverrideConvertor Klasse
https://groups.google.com/forum/#!Thema/swagger-swaggersocket/ChiknyHZiP4
Bitte helfen.
dataType
ist ein java-Typ, wie in java.lang.String
oder int
, nicht der "swagger-Typ".ist der swagger-Anmerkung diese Anmerkung hat eine Methode dataType, das den vollständig qualifizierten Pfad für die Klasse der Typ, den wir brauchen , in diesem Fall ist es org.joda.Zeit.LocalDate. In den Antwort-Abschnitt, sagt das gleiche. Überprüfen Sie die übergeordnete Eigenschaft Datentyp Abschnitt 5.3 hier: springfox.github.io/springfox/docs/snapshot/...
InformationsquelleAutor Sourav | 2016-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meinen Teamkollegen gefunden hat fix. Wir brauchten, um ein upgrade der springfox version 2.3.0 , zuvor waren wir mit springfox 2.2.2 version. In dieser alten version swagger ' s @ApiModelPreporty hat Attribut mit dem Namen "Beispiel", das war nicht etwas zu tun. Von der version 2.3.0 version dieses "Beispiel" zu arbeiten begann. So, nachdem wir aktualisiert die springfox version 2.3.0 , alles, was wir zu tun hatten, ist, wie unten gezeigt.
Unten ist der link, von wo wir diese information gefunden:
https://github.com/springfox/springfox/issues/998
InformationsquelleAutor Sourav
Das problem (eines der Probleme) mit
java.util.Date
ist, dass es wirklich ein Datum-Zeit-und Fors korrekt erkennt Sie als solche. Ich verstehe, dass die@JsonFormat
ist ein workaround für diese als gut--swagger nicht unterstützt, annotation während der Typ-Erkennung.Haben Sie drei Möglichkeiten, um richtig zu behandeln, Termin-Typen.
1) Verwenden Sie Joda ist
LocalDate
wie der Datentyp. Wenn Sie erklärtprivate LocalDate date
wäre es korrekt angezeigt.2) mit java8 ist
LocalDate
, die gleichen wie oben.3) Sagen, swagger, verwenden Sie entweder die oben, wenn die Erkennung der Typ in der annotation, behalten aber die Eigenschaft als Typ
java.util.Date
:Dann, wenn das Scannen, swagger erkennt dies als
date
formatierten string.Können Sie bitte bestätigen Sie die version von Fors-core, die Sie verwenden? 1.5.6 ist die Letzte.
Wir sind mit swagger-core-1.5.3-version, auch sollte ich erwähnen, dass wir mit springfox-swager2 Abhängigkeit . Die Abhängigkeit in meiner pom-Datei : <Abhängigkeit> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${spring.fox.version}</version> </Abhängigkeit>
Springfox nutzt die Kern Fors Anmerkungen, ich schlage vor, Sie öffnen Sie ein Thema in Ihrem repository, um zu sehen, dass Sie update auf 1.5.6, und vielleicht fügen Sie tests für diese situation.
InformationsquelleAutor fehguy