swagger champ de date vs date-time champ
Je suis à l'aide de swagger pour tester mon api rest, celui de la propriété de ma classe d'entité est un champ de date pour laquelle j'ai besoin de la date au format aaaa-mm-jj , mais swagger schéma du modèle est de montrer ce domaine comme date-heure au lieu de champ de date, donc il donne la date avec l'heure et de la zone. Comment puis-je convertir cette date dans le champ date ?
J'ai un java de la classe d'entité TimeEntry.java l'un de ses biens est la Date, ça ressemble à ça.
@ApiModelProperty(required = true)
@JsonFormat(pattern = DATE_FORMAT)
private Date date;
pour ce champ, sur le style de l'INTERFACE utilisateur de schéma du modèle, le champ affiche la date "date": "2016-01-08T22:34:22.337 Z" mais j'ai besoin de cela comme un "date":"2016-01-08" .
J'ai essayé ce qui suit:
1.
@ApiModelProperty(required = true, dataType="date")
@JsonFormat(pattern = DATE_FORMAT)
private Date date;
2.J'ai essayé de suivre le long de ce code (remplacer OverrideConvertor classe), mais ne pouvait pas trouver swagger-core 1.3 version mvn repo. Uniquement disponible est la version 1.5 https://github.com/swagger-api/swagger-core/wiki/overriding-models
- Apparemment à partir de la version 1.5, ils ont enlevé le OverrideConvertor classe
https://groups.google.com/forum/#!topic/swagger-swaggersocket/ChiknyHZiP4
S'il vous plaît aider.
dataType
est un type java, comme dans java.lang.String
ou int
, pas le "swagger".est l'arrogance de l'annotation , cette annotation est une méthode de type de données qui prend le chemin d'accès complet de la classe du type dont nous avons besoin , dans ce cas, il est org.joda.temps.LocalDate. Dans la section Réponse dit la même chose. De vérifier la principale propriété de type de données de la section 5.3 ici: springfox.github.io/springfox/docs/snapshot/...
OriginalL'auteur Sourav | 2016-01-11
Vous devez vous connecter pour publier un commentaire.
Le problème (l'un des problèmes, en fait) avec
java.util.Date
est que c'est vraiment une date-heure, et swagger détecte correctement en tant que tel. Je comprends que les@JsonFormat
est une solution de contournement pour ce que bien--swagger ne prend pas en charge cette annotation au cours de ce type de détection.Vous disposez de trois options pour gérer correctement les types date.
1) Utilisation Joda est
LocalDate
que le type de données. Si vous avez déclaréprivate LocalDate date
, il semblerait correctement.2) Utiliser java8 de
LocalDate
, comme ci-dessus.3) Dites-swagger pour utiliser l'un des ci-dessus lors de la détection du type de l'annotation, mais garder la propriété type de
java.util.Date
:Puis, lors de la numérisation, swagger le détectera comme un
date
chaîne formatée.Pouvez-vous s'il vous plaît confirmer la version de swagger-core que vous utilisez? 1.5.6 est plus tard.
Nous sommes à l'aide de swagger-core version 1.5.3, aussi je me dois de mentionner que nous sommes à l'aide de springfox-swager2 de dépendance . La Dépendance dans mon pom fichier est : <dépendance> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${printemps.la fox.version}</version> </dépendance>
Springfox utilise la base swagger annotations, je vous suggère d'ouvrir un sujet dans leur référentiel de voir qu'ils ont mise à jour 1.5.6, et peut-être ajouter des tests pour cette situation.
OriginalL'auteur fehguy
Mon coéquipier a trouvé la solution. Nous avons besoin de mettre à niveau le springfox version 2.3.0 , auparavant, nous étions à l'aide de springfox 2.2.2 version. Dans cette ancienne version swagger @ApiModelPreporty a attribut appelé "exemple" qui ne faisait rien. À partir de la version 2.3.0 version de cet "exemple" a commencé à travailler. Ainsi, après la mise à niveau de la springfox version 2.3.0 , tout ce que nous avions à faire est, comme indiqué ci-dessous.
Ci-dessous est le lien de là où nous avons trouvé cette information:
https://github.com/springfox/springfox/issues/998
OriginalL'auteur Sourav