2016-08-04 14 views
2

Ich habe ein Problem mit Spring Boot 1.4 und Swagger und Swagger UI. Bei Verwendung von @RequestBody wird der Parameter als Datentyp string angezeigt. Das scheint nicht korrekt zu sein.Spring Boot + Swagger + Swagger UI und @RequestBody hat Datentyp String

@ApiOperation(value = "simple message resource") 
@ApiImplicitParams({ 
     @ApiImplicitParam(name = "message", value = "Message to send", required = true, dataType = "com.larmic.springboot.swagger.rest.dto.MessageDto", paramType = "body") 
}) 
@RequestMapping(value = "/api/message", method = RequestMethod.POST, 
     consumes = {"application/json", "application/xml"}) 
public void sendMessage(@RequestBody MessageDto message) { 
    System.out.println("ping"); 
} 

und

@XmlRootElement(name = "MessageDto") 
@XmlAccessorType(XmlAccessType.FIELD) 
@ApiModel(value = "MessageDto", description = "TODO") 
public class MessageDto { 

    @ApiModelProperty(value = "Message content text", required = true, example = "some demo message") 
    private String content; 

    public String getContent() { 
     return content; 
    } 

    public void setContent(String content) { 
     this.content = content; 
    } 
} 

ich viele Fixes gefunden haben mit vollständigen Namen MessageDto oder korrekten Wert von @ApiModel Einstellung, aber nichts scheint zu funktionieren.

Ich habe ein vollständiges Beispiel erstellt hier https://github.com/larmic/SpringBootAndSwaggerUI

Vielleicht kann jemand helfen.

Antwort

5

Dies scheint ein Fehler in Springfox (#1344) zu sein. Man könnte es umgehen, indem sie nicht @ApiImplicitParams verwenden, sondern durch Ihre Methodenparameter annoting sich mit der @ApiParam Anmerkung:

@ApiOperation(value = "simple message resource") 
@RequestMapping(value = "/api/message", method = RequestMethod.POST, 
     consumes = {"application/json", "application/xml"}) 
public void sendMessage(@ApiParam(name = "message", value = "Message to send", required = true) @RequestBody MessageDto message) { 
    System.out.println("ping"); 
} 
+0

Vielen Dank! Das funktioniert! Ich habe das Update auf https://github.com/larmic/SpringBootAndSwaggerUI verschoben –

Verwandte Themen