2016-11-15 1 views
0

스프링 부트를 사용하여 휴식 서비스를 만들고 설명서 용으로 Swagger (SpringFox를 통해)를 사용 중입니다. 그리고 거의 정상적으로 작동합니다. 이 문제는 모든 쿼리 매개 변수를 요청 개체로 이동하여 메서드 서명에서 암시 적으로 값을 바인딩하고 스프링 유효성 검사기를 암시 적으로 실행 한 경우에 발생합니다.Force Swagger가 요청 객체의 세부 정보를 표시합니다.

public List<Category> getCategory(@Valid CategoryInputRequest inputRequest) throws JsonParseException, 
    JsonMappingException, IOException 

CategoryInputRequest은 일반 콩 구조를 갖는 콩입니다 :

이 내 메소드 서명은 모습입니다 IdNumber, platformId 쿼리 매개 변수와 데이터 검증 및 구속력

@ApiModel(value = "Input Description") 
public class CategoryInputRequest { 
    @NotNull(message="SE Number is mandatory") 
    @Size(min=10,max=10,message="SE Number must have 10 characters") 
    @ApiModelProperty 
    private String idNumber; 

    @NotNull(message="Platform ID is mandatory") 
    @ApiModelProperty 
    private String platformId; 
    . 
    . 
    . 

완벽하게 발생합니다. 그러나 Swagger는 메소드 서명에서 "CategoryInputRequest inputRequest"가 requestBody 유형의 매개 변수가되고 쿼리 매개 변수가 아니라고 가정하므로 개별 필드를 사용자에게 노출시키지 않습니다. 대신 JSON 블록을 넣을 큰 텍스트 영역을 제공합니다. @APIModelProperty를 주려고했으나 작동하지 않습니다.

아무도 도와 줄 수 있습니까? 나는 그 문제를 설명 할 수 있었으면 좋겠다. 작동하지만 ModelAttribute.This가 매핑 URL에 아닌 쿼리 paramters에서 수행되고 있음을 나타냅니다 @ 적절한 선언은 keywork을 가져야한다

공개 목록주는 getCategory (@Valid CategoryInputRequest inputRequest) :

답변

1

내 자신의 질문에 대답 요청 본문. 그리고 swagger는 패턴을 정확하게 분석 할 수 있습니다. 희망은 누군가를 도와줍니다 :)

관련 문제