2017-02-08 4 views
0

Während ein Stück Code machen die Überprüfung ich eine stark kommentierte Funktion angetroffen, die Wie kann ich Swagger lesen SpringMVC Anmerkungen

@ApiParam(value = "order number", required = false) @RequestParam(value = "order", required = true)

required = false gegen requires = true sehr verdächtig aussieht, ist es wahrscheinlich entlang der Linien von

etwas inbegriffen ein Käfer. Die Wiederholung in den Anmerkungen ist eine offensichtliche Ursache für solche Fehler. Warum kann Swagger nicht einfach die @RequestParam-Annotation lesen, wodurch die @ApiParam-Annotation veraltet oder zumindest optional wird?

Wie würde ich das elegant machen?

Antwort

1

Verwenden Sie die neueste spring-fox? Nach dem Docs, werden Sie nur die @ApiXX, wenn das Verhalten/Modell von MVC/Jackson Anmerkungen extrahiert werden kann, nicht verwenden müssen:

1,2. Ziele

Philosophisch möchten wir verhindern, dass (swagger-core) Annotationen verwendet werden, die für die Servicebeschreibung zur Laufzeit nicht wesentlich sind. Für z.B. Die Jackson-Annotationen sollten immer größer oder schwerer sein als @ApiModelProperty oder z. @NotNull oder Angabe von @ RequestParam # erforderlich sollte immer gewinnen. Anmerkungen dienen nur dazu, die Dokumentation zu ergänzen oder die resultierende Spezifikation zu überschreiben/zu optimieren, wenn es nicht möglich ist, Service-/Schemaeigenschaften abzuleiten.

Also auch wenn die @ApiParam einen widersprüchlichen Wert für required gibt, die generierten api-docs von springfox wird verwenden, um den @RequestParam Wert.

Verwandte Themen