Я создаю службу отдыха, используя загрузку Spring, а для документации я использую Swagger (через SpringFox). И работает почти нормально. Проблема возникает, когда я переместил все параметры моего запроса в объект запроса и использовал его в сигнатуре метода, таким образом, неявно привязывая значения и запуская неявно валидаторы Spring.
Вот как выглядит моя подпись метода:
public List<Category> getCategory( @Valid CategoryInputRequest inputRequest) throws JsonParseException,
JsonMappingException, IOException
CategoryInputRequest — это bean-компонент, имеющий простую структуру bean-компонента:
@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, но это не работает.
Кто-нибудь может помочь? Надеюсь, я смог объяснить проблему.