2016-11-15 1 views
0

Я создаю службу отдыха с использованием Spring Boot и для документации. Я использую Swagger (через SpringFox). И он почти работает нормально. Проблема возникает, когда я переместил все мои параметры запроса в объект запроса и использовал это в сигнатуре метода, тем самым неявно привязывая значения и получая пружинные валидаторы, которые запускаются неявно.Force 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; 
    . 
    . 
    . 

Где IDNumber, platformId являются параметры запроса и проверки достоверности данных и связывания происходит безупречно. Но Swagger предполагает, что «CategoryInputRequest inputRequest» в сигнатуре метода является типом параметра requestBody, а не параметрами запроса, и, следовательно, не предоставляет отдельные поля пользователю. Вместо этого дает большую текстовую область для ввода блока JSON. Я попытался предоставить @APIModelProperty, но он не работает.

Может ли кто-нибудь помочь? Надеюсь, я смог объяснить проблему.

ответ

1

Отвечая на мой собственный вопрос:

общественности Список getCategory (@Valid CategoryInputRequest inputRequest) работает, но надлежащая декларация должна иметь keywork @ ModelAttribute.This указывает, что отображение делается из paramters запроса в URL, а не орган запроса. И чванство может правильно проанализировать шаблон. Надеюсь, это поможет кому-то :)

 Смежные вопросы

  • Нет связанных вопросов^_^