Spring validation

0

Witam,

Piszę aplikację i podczas walidacji obiektu jako body param występują dwa problemy. Pierwszy to brak zwracanych error messages z pola np.

@NotBlank(message = "Not blanksdasasa")

Natomiast drugi to adnotacja @Size przy polu typu String. Jak szczelam z Postmana to działa poprawnie jak z frontu to nie waliduje.

Kontroler

    @ResponseStatus(HttpStatus.CREATED)
    @PostMapping(value = "/add", consumes = MediaType.APPLICATION_JSON_VALUE)
    void add(@RequestBody @Valid final X x) {
        subjectService.add(x);
    }

Obiekt

@Builder(access = AccessLevel.PACKAGE)
@AllArgsConstructor(access = AccessLevel.PACKAGE)
@NoArgsConstructor(access = AccessLevel.PACKAGE)
@Getter
@EqualsAndHashCode
@ToString
class X {

    @NotBlank(message = "Not blanksdasasa")
    @Size(min = 1, max = 100, message = "Zły zakres")
    private String name;
}

Czy ktoś może mnie nakierować co robię źle? Z góry dzięki za pomoc

0

Jak szczelam z Postmana to działa poprawnie jak z frontu to nie waliduje.

Co znaczy "nie waliduje"? Pomija walidacje i zwraca 201 czy dostajesz jakiś inny błąd? Wejdź sobie w Inspect w dev toolsach i zobacz jakie headery i wartości przesyłasz (i najlepiej tu wrzuć oba curl'e z Postmana i frontu)

Co znaczy "działa poprawnie"? W pierwszej części piszesz, że te adnotacje Ci nie działają i nie dostajesz errorów

0

Jak szczelam z postmana to adnotacja size waliduje, jak z frontu to nie działa (muszę dodać dodatkowo notBlank). I jak już jest sytuacja że walidacja wychwyci błąd to nie zwraca w response error message.

1

Podaj nam tu konkretne http body z postmana i z frontu. Bo jeśli np wysłałbyś np samą spację, to @Size byłby zadowolony (minimum 1) ale już @NotBlank Ci to wychwyci

1 użytkowników online, w tym zalogowanych: 0, gości: 1