2016-11-15 70 views
0

我正在使用Spring引導創建休息服務以及我正在使用Swagger(通過SpringFox)的文檔。它幾乎可以正常工作。當我將所有查詢參數移動到一個請求對象並在方法簽名中使用它時隱含地綁定了這些值,並且隱式激發了spring驗證器。強制Swagger公開請求對象的詳細信息

這是我的方法簽名的外觀:

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

的CategoryInputRequest是具有純豆結構的豆:

@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; 
    . 
    . 
    . 

其中的ID號,platformId是查詢參數和數據驗證和綁定完美無瑕地發生。但Swagger假設方法簽名中的「CategoryInputRequest inputRequest」是一個requestBody類型的參數,而不是查詢pameters,因此不會將單個字段暴露給用戶。而是給一個大的文本區域放置一個JSON塊。我嘗試給@APIModelProperty但它不起作用。

任何人都可以請幫忙嗎?我希望我能夠解釋這個問題。

回答

1

回答我的問題:

公開名單的getCategory(@Valid CategoryInputRequest inputRequest)的作品,但正確的聲明應該有keywork @ ModelAttribute.This表明映射正從網址,而不是查詢paramters完成請求正文。而且招搖者能夠正確地分析模式。希望它可以幫助別人:)

相關問題