Code: Select all
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SampleRequest {
@NotBlank
private String firstName;
private String middleName;
@NotBlank
private String lastName;
}
Code: Select all
@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>
Der Wert aller bei Controller empfangenen Felder ist null. Bei der Untersuchung stellte ich fest, dass es irgendwie nicht die Felder in Kamelfall akzeptiert, sondern mit Unterstrichen akzeptiert. Also habe ich versucht, die API mit dem folgenden Format zu treffen, und es hat funktioniert: < /p>
{
"first_name":"John",
"middle_name":"For",
"last_name":"Doe",
}
< /code>
Warum ist es so? Unabhängig von der Mode, die wir in unserer Anfrageklasse definiert haben, sollte es gleich sein, wenn Sie die Anfrage von Postboten oder von App -Seite senden. Warum funktioniert es nur, wenn ich mit Unterstrich anstelle von Kamel-Case senden muss?