Код: Выделить всё
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SampleRequest {
@NotBlank
private String firstName;
private String middleName;
@NotBlank
private String lastName;
}
Код: Выделить всё
@PostMapping(path = "mydetails", consumes = {MediaType.APPLICATION_JSON_VALUE})
public DeferredResult saveMyDetails(@Validated @RequestBody SampleRequest sampleRequest) {
// some logic here
return detailsResponse;
}
{
"firstName":"John",
"middleName":"For",
"lastName":"Doe",
}
< /code>
Значение всех полей, полученных на контроллере, является нулевым. После расследования я обнаружил, что это каким-то образом не принимает поля в верблюжьем обмене, скорее, это принимает с подчеркиванием. Итак, я попытался нанести удар по API с форматом ниже, и он работал: < /p>
{
"first_name":"John",
"middle_name":"For",
"last_name":"Doe",
}
< /code>
Итак, почему это так? Какую бы моду мы определили в нашем классе запроса, она должна быть то же самое при отправке запроса от почтальона или со стороны приложения. Почему это работает только тогда, когда мне нужно отправлять с подчеркиванием вместо верблюжьего?
Подробнее здесь: https://stackoverflow.com/questions/755 ... zed-by-api