Customizing-Request-Header Beschreibung in Swagger-UI mit Springfox-Swagger2
Ich bin mit Springfox Swagger2 version 2.4.0, Springfox Swagger-UI-version 2.4.0 und Swagger Anmerkungen version 1.5.0 in meinem Spring-Boot-Anwendung.
Die Frage hier ist, ich bin in der Lage zu generieren swagger-UI für meine controller-API-und ich bin in der Lage zu testen. Aber ich bin nicht in der Lage, um anzugeben, request-header Beschreibung für meine Anfrage-header. Ich m mit @RequestHeader-Anmerkung für die gleichen.
Den code-Schnipsel in meinem controller-API folgt:
@RequestHeader(name = "Api-Key") String apiKey
Fors UI für den request-header ist wie folgt:
Den markierten rechteckigen Bereich in der Abbildung stellt die Beschreibung der request-header.
Derzeit nur nimmt die genannten Daten im name-Attribut, und zeigt es. Aber ich will eine andere Beschreibung für den gleichen. D. H. "Wert" license key"
Wie kann ich erreichen, das in Swagger-UI @RequestHeader annotation nur einen Wert haben, defaultValue, Namen und die gewünschten Attribute? Jede Hilfe wäre wirklich zu schätzen.
Update: auf der Suche nach einer Lösung out of the box ohne irgendwelche benutzerdefinierten annotation von meinem eigenen
- Verstehe nicht, warum diese Frage ist downvoted zweimal?
- Ich bin verwirrt mit RequestHeader genau wie beschrieben. ApiParam(name, Wert, ..) macht Sinn für mich, und #Wert() ist explizit beschrieben, für die "Beschreibung" (io.stolzieren.Anmerkungen v2.9.2 in meinem Fall). Aber die interface-Deklaration von @RequestHeader in (spring-web.binden.Anmerkungen 5.0.12 in meinem Fall) erklärt #Wert() mit einem AliasFor("name") und #name() mit einem AliasFor("Wert"), wobei die Einstellung sowohl zur gleichen Zeit, die Ergebnisse in ein render-Fehler. Ist das ein bug, oder sollte das Umgekehrt sein RequestHeader::value() sich Verhalten sollte analog ApiParam::value() als Feld "Beschreibung"?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht meine Antwort hilft jemand.
Wie bereits erwähnt Dilip Krishnan in seine Antwort, die Sie nutzen könnten
io.swagger.annotations.ApiParam
oderio.swagger.annotations.ApiImplicitParam
Swagger Anmerkungen für fein abgestimmte individuelle Dokumentation.@ApiParam
könnte verwendet werden, für die registrierten Parameter der Methode.@ApiImplicitParam
könnte verwendet werden, wenn die API-parameter nicht explizit registriert.Und am Ende konnte man sehen, Folgendes Bild
@ApiParam(value="header description")
kann verwendet werden, zusammen mit@RequestHeader
zu bieten header-Beschreibung. @DmytroBoichenko aktualisieren Sie die Antwort mit diesem.TL;DR ist, dass Sie Ihre eigenen zu bauen-plugin, um es zu tun.
Im Grunde die einzige out-of-the-box-Anmerkungen zu ergänzen, die der Beschreibung in diesem Fall sind
@ApiParam
und um genauer zu sein@ApiImplicitParam
. Leider keiner von diesen Anmerkungen unterstützen die Beschreibungen.Also mein Vorschlag wäre:
Erstellen Sie Ihre eigene Anmerkung, dass würde dann so Aussehen
@RequestHeader(name = "Api-Key")
@Description("Value of license key") String apiKey
HINWEIS: Es ist bereits ein Anmerkung im Frühling, dass dafür geeignet ist.
Auch, aktualisieren Sie bitte Ihren springfox Bibliothek der neueste version.
Hatten wir das gleiche Problem, und das problem gelöst in der folgenden Weise:
Die Idee ist, fügen Sie "Beschreibung" - Feld in generierte stolzieren. Es könnte Aussehen, hacky, aber es ist eine schnelle einfache Lösung, die nützlich sein können in Ihrem persönlichen Fall.