2017-12-31 38 views
0

Anforderung: Ich habe eine POST-Methode, die die Eingabe JSON als String übernimmt und an einen anderen Microservice weiterleitet. Ich möchte kein Objekt (Bean) dieses JSON-Eingangs erstellen.Swagger Beispiel post body - wie man JSON Body zeigt Swagger-Anmerkungen

Methode:

@ApiOperation(notes = "example" value = "/example", consumes = ".." , method= "..") 
    @RequestMapping(name = "xxx" value ="/hello" ..) 
    @ApiResponses(..) 
     public @ResponseBody String getXXX (@Apiparam(name="JSONrequest", required = true) @RequestBody String JSONrequest){ 

    } 

Problem: Die erzeugte Swagger zeigt nicht die Eingabe als JSON Modell, bei dem alle JSON Attribute angezeigt werden.

Erwartung: Ich möchte wie das meine Swagger Etwas anzuzeigen:

enter image description here

Definitiv der Schlüssel, was mir fehlt. Irgendwelche Gedanken?

+0

Sie müssen ein Modell definieren, wenn Sie JSON-Schema in Swagger-Ui anzeigen möchten, glaube ich. –

Antwort

1

Wenn von String auf ein konkretes Objekt ändert nicht in Ordnung ist (obwohl das, was würde ich dir empfehlen zu tun, da es sauberer ist), können Sie versuchen @ApiImplicitParams mit (check out ihre documentation)

@ApiOperation(notes = "example" value = "/example", consumes = ".." , method= "..") 
@ApiImplicitParams({ 
     @ApiImplicitParam(name = "Object", value = "Object to be created", required = true, dataType = "your.package.BodyClass", paramType = "body") 
}) 
@RequestMapping(name = "xxx" value ="/hello" ..) 
@ApiResponses(..) 
    public @ResponseBody String getXXX (@Apiparam(name="JSONrequest", required = true) @RequestBody String JSONrequest){ 

} 

(nicht sicher, wenn Sie immer noch das @Apiparam(name="JSONrequest", required = true) Bit aus dem Methodenparameter benötigen)

+0

Hallo sfat, Danke. Ich habe versucht @ApiImplicitParams aber immer noch kein Glück. Hat einen Bug veröffentlicht @ https://github.com/springfox/springfox/issues/2183. Ich benutze Version 2..7.0. – Sum

Verwandte Themen