swagger @ApiModelProperty Beispiel-Wert für die Liste<String> Eigentum
Ich habe eine Klasse, in der es ist eine Eigenschaft, die List<String>
public class MyClass {
....
@ApiModelProperty(position = 2)
private List<String> productIdentifiers;
....
}
Dieser code erzeugt die Beispiel-Werte wie folgt:
{
"customerId": "1001",
"productIdentifiers": [
"string"
],
"statuses": [
"NEW"
]
}
Beispiel Werte, die hier gezeigt werden, sind nicht gültig. Voraussichtlich meine Beispiel-Werte wie :
{
"customerId": "1001",
"productIdentifiers": [
"PRD1",
"PRD2",
"PRD3"
],
"statuses": [
"NEW"
]
}
Habe ich versucht vorbei Beispiel-Attribut wie folgt, aber es ist nicht die Erzeugung richtigen Wert:
@ApiModelProperty(position = 2, example = "PRD1, PRD2, PRD3")
//This generates -> "productIdentifiers": "PRD1, PRD2, PRD3" //Its not json array
@ApiModelProperty(position = 2, example = "[\"PRD1\", \"PRD2\", \"PRD3\"]")
//This generates -> "productIdentifiers": "[\"PRD1\", \"PRD2\", \"PRD3\"]" //Its too not json array
Gibt es eine Möglichkeit, die ich erzeugen kann, die ordnungsgemäße Beispiel-Wert für die Eigenschaft List ?
Update :
Habe ich versucht die Lösungsvorschläge von @nullpointer und @Zeeshan Arif
@ApiModelProperty(position = 2, dataType="List", example = "PRD1, PRD2, PRD3")
private List<String> productIdentifiers;
//This generates -> `"productIdentifiers": "PRD1, PRD2, PRD3"`
Update 2 :
Versucht folgenden Ansatz nicht generieren, die richtige Antwort
@ApiModelProperty(position = 2, dataType="java.util.List<String>", example = "PRD1, PRD2, PRD3")
//This generates -> "productIdentifiers": "PRD1, PRD2, PRD3"
@ApiModelProperty(position = 2, dataType="String[]", example = "PRD1, PRD2, PRD3")
//This generates -> "productIdentifiers": "PRD1, PRD2, PRD3"
mein maven dependency für swagger jar ist :
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
<exclusions>
<exclusion>
<artifactId>mapstruct</artifactId>
<groupId>org.mapstruct</groupId>
</exclusion>
</exclusions>
</dependency>
Update
github-ticket für dieses Problem
dataType=List<String>"
? Auch nur zum testen eben, was swagger-version/ - Abhängigkeit verwenden Sie?Ich bin immer "PRD1, PRD2, PRD3" für alle diese für meine versuche.
InformationsquelleAutor Anil Bharadia | 2016-12-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
TLDR: Eine der helfenden auf Swagger-API gearbeitet hat, auf diese Funktionalität hinzufügen, um diesen in der version 3.0.0 aber es ist noch nicht sicher, Wann das sein wird, veröffentlicht. Jetzt steht es auf der feature - /3.0.0-rc2-Filiale an der Fors-API von GitHub
Arbeite ich mit Swagger für fast zwei Monate jetzt, und wie unser Projekt voran Fragen wie diese stellten sich ein. Nun habe ich einige der Forschung und Lesen Sie auf der GitHub-Seiten für die Fors-API, die diese Funktion einfach nicht (noch nicht).
Beschrieben hier und [hier wäre ein anderer link, aber mein Ruf ist nicht hoch genug, um nach mehr als 2-links] diese Funktion wurde mehrfach angefordert, da August 2015 mit nicht viel Glück.
Nun auf dieses Thema auf die Fors-API auf github, einer der Mitwirkenden, kommentierte:
die dazu führen, dass ein später Kommentar:
Und auf 9. August 2017 jemand fragte, Wann das release der version 3.0.0 wäre mit keine weitere Reaktion.
So zum Schluss, Unterstützung für Beispiele für arrays/Listen wurde bearbeitet und sollte in der version 3.0.0 aber keine news mehr auf, wenn das veröffentlicht werden würde.
InformationsquelleAutor KoenC
Habe ich es geschafft, diese zu arbeiten, erzeugt eine Liste von Strings.
Innerhalb der ApiModelProperty, definieren Sie die Datentyp wie eine Liste, und schreiben Sie Ihre Beispiel wie folgt:
Hier ist mein Beispiel:
Wenn ich render Fors Seite, erhalte ich die folgende Ausgabe:
Leider, das gleiche nicht für eine Liste/Reihe von Integer-oder Long-Werte
nicht für mich arbeiten entweder
InformationsquelleAutor dane_griffiths
Verwenden Sie einfach
Reflection
notation. Mitfunktioniert gut, aber ich kann keine Beispiele.
Dies ist das Ergebnis:
Dies funktioniert mit
[Ljava.lang.String;
, aber nicht mit[Ljava.time. LocalDateTime;
.InformationsquelleAutor Daniel Borges
Versuchen zu initialisieren
@ApiModelProperty
wie folgt:Können Sie uns details?
Ich habe aktualisiert, details in der ursprünglichen Frage. Bitte lassen Sie mich wissen, wenn Sie brauchen mehr details
InformationsquelleAutor Zeeshan Arif
Einen hässlichen workaround, bis wir dieses feature richtig unterstützt, produziert, die Beispiele für Listen mit nur einem element, aber zumindest erlaubt zu zeigen, etwas mehr nützlich als nur
"string"
ist die VerwendungallowableValues
:allowableValues
schränkt die Eigenschaft, um eine enum, was bedeutet, dass die Eigenschaft kann nur über die angegebenen Werte. Dies ist nicht das gleiche wieexample
.Das scheint nicht der Fall zu sein, das funktioniert und alle Werte erlaubt sind, obwohl Sie nicht angegeben sind in allowableValues. Das könnte ein hack, aber es ist buchstäblich die einzige Sache, die funktioniert für diese version von swagger. Ich verstehe nicht, warum jemand würde nach unten-Abstimmung in dieser
Die Open API (Fors) definition generiert aus Annotationen dient als Vertrag zwischen dem API-Anbieter (Sie) und die Verbraucher. Es ist nicht nur für die Dokumentation, die verwendet werden können, ist unter anderem für die Erzeugung von client-SDKs, für request - /response-validation, etc. Und missbrauchen
allowableValues
führt zu falschen Ergebnissen. So tun Sie das nicht.Ich sehe Ihren Punkt. Ich denke, es funktioniert besser für meinen Anwendungsfall, wie wir mit Pakt für den Vertrag die Prüfung und swagger nur als backbone für swagger-ui. Aber nur so bekomme ich diese gerade, ist die Open API-definition verwendet, um die Daten zu überprüfen, die während der Laufzeit? Wenn ja, kann ich verstehen, warum es ein problem verursachen könnten, wenn nicht wäre es sich meist um eine schlechte Praxis (Durchsetzung über einen bestimmten Wert, wenn die Validierung des Vertrags).
die Open API-definition verwendet, um die Daten zu überprüfen, die während der Laufzeit?" - hängt sich das tool/framework. Im Fall von automatisierten Tests, zum Beispiel, SoapUI hat Behauptungen zu überprüfen API-Antworten gegen die Open API-definition.
InformationsquelleAutor Helder Pereira
Änderte ich meine zum Beispiel den folgenden code und es funktionierte.
InformationsquelleAutor bpedroso