Я реорганизовал свой код для использования Spring Webflux, но теперь @Valid
перестал работать.Он не проверяет тело запроса.
@PostMapping(value = "/getContactInfo",produces = "application/json",consumes = "application/json")
public Flux<UserContactsModel> getUserContacts(@Valid @RequestBody Mono<LoginModel> loginDetail) {
loginDetail.log();
return contactInfoService
.getUserContacts(loginDetailApiMapper.loginModelMonoToLoginBoMono(loginDetail))
.flatMapIterable(
userContactsBO -> contactInfoMapper.userContactBoToModelList(userContactsBO));
}
Я получаю 200 OK вместо плохого запроса, который я возвращаю из рекомендации контроллера.
Редактировать 1:
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
public class LoginModel implements Serializable {
private String clientId;
@Pattern(regexp = "^[a-zA-Z0-9]*$", message = "Login ID is invalid")
@NotNull
private String loginId;
}
обновление 1: После изменения кода, подобного этому, и добавления @Validated на уровне класса
@RestController
@Validated
public class ContactInfoController implements ContactInfoApi {
public Flux<UserContactsModel> getUserContacts(@RequestBody Mono<@Valid LoginModel> loginDetail) {
Я получаю javax.validation.ConstraintDeclarationException:HV000197: Не найден экстрактор значения для параметра типа 'T' типа реактор.core.publisher.Mono.