2017-09-20 20 views
1

Swagger Java API에서 responseecontainer = "List"(또는 "Set")를 code = 400으로 사용하면 응답 모델이 표시되지 않습니다. Swagger-GUI. 나는 방금 Array [Object]를 얻고있다. 그래서 일반적으로 i'am 자신감 UI의 [] 사이에이 모델을 가정코드가 400 일 때 Swagger @ApiResponse responseContainer가 작동하지 않음

public class Rejection { 


private Long id; 


private RejectionDTO rejection; 


private String originMessage; 

public Rejection() { 
} 

public Long getId() { 
    return id; 
} 

public RejectionDTO getRejection() { 
    return rejection; 
} 

public String getOriginMessage() { 
    return originMessage; 
} 

public void setId(Long id) { 
    this.id = id; 
} 

public void setRejection(RejectionDTO rejection) { 
    this.rejection = rejection; 
} 

public void setOriginMessage(String originMessage) { 
    this.originMessage = originMessage; 
} 
} 

:

여기
@CrossOrigin 
@RestController 
@RequestMapping(value = "/api") 
@Loggable(prepend = true, trim = false) 
public class ConfigResource { 

    private final ConfigResourceDelegate delegate; 

    @Inject 
    public ConfigResource(final ConfigResourceDelegate delegate) { 
     this.delegate = delegate; 
    } 


    @RequestMapping(
     value = "/v1/config", 
     method = PUT, 
     consumes = APPLICATION_JSON_UTF8_VALUE, 
     produces = APPLICATION_JSON_UTF8_VALUE 
    ) 
    @ApiResponses(value = {@ApiResponse(code=202,message = "ACCEPTED"), 
     @ApiResponse(code=200,response = Rejection.class, responseContainer 
     = "Set", message = "BAD_REQUEST"), 
     @ApiResponse(code=500, message = "INTERNAL_SERVER_ERROR")}) 
    public ResponseEntity<?> putConfig(final @RequestBody ConfigDto 
    configDto){ 
    return delegate.putConfig(riskConfigDto); 
    } 
} 

가 거부 클래스입니다 :

다음은 구체적인 경우이다. 그러나, 나는 점점 오전 배열 [오브젝트] :

See screen capture

+0

@ApiResponses를 사용중인 컨트롤러를 게시하십시오. –

+0

@IndraBasak 완료 –

+0

작동 예제로 응답했습니다. –

답변

0

이 예를 작동하려면, 당신은 구상 클래스, ResponseEntity<List<Rejection>>에, 와일드 카드, ResponseEntity<?>에서 반환 값을 변경해야합니다. 또한 responseContainerList에서 Set으로 변경해야합니다.

@RequestMapping(
     value = "/v1/config", 
     method = PUT, 
     consumes = APPLICATION_JSON_UTF8_VALUE, 
     produces = APPLICATION_JSON_UTF8_VALUE 
    ) 
    @ApiResponses(value = {@ApiResponse(code=202,message = "ACCEPTED"), 
     @ApiResponse(code=200,response = Rejection.class, responseContainer 
     = "List", message = "BAD_REQUEST"), 
     @ApiResponse(code=500, message = "INTERNAL_SERVER_ERROR")}) 
    public ResponseEntity<List<Rejection>> putConfig(final @RequestBody ConfigDto 
    configDto){ 
    return delegate.putConfig(riskConfigDto); 
    }