Spring Boot (mit Jackson) behandelt Objekt Zuordnung zwischen einem JSON-Dokument und einem Java POJO recht gut. Zum Beispiel:Entity-Beziehungen in POSTed JSON mit Spring Boot
@PostMapping("/students/{id}")
public Student Update(Long studentId, @RequestBody Student student) {
studentRepository.save(student);
return student;
}
und werden korrekt abgebildet in:
public class Student {
private Long id;
private String name;
...
}
Aber was verschachtelte Modelle im JSON
{ id: 5, name: "Christopher" }
kann angenommen werden?
{ id: 5, name: "Christopher", grades: [ {id: 1, letter: 'A'} ] }
Oder optionale Modelle im JSON?
{ id: 5, name: "Christopher" }
(Purposefully leaving out 'grades', though it could be accepted.)
Oder zeigt das Entfernen einer Zuordnung in JSON (Beispiel mit Rails '_ Destroy Flag)?
{ id: 5, name: "Christopher", grades: [ {id: 1, letter: 'A', _destroy: true} ] }
Oder eine Verknüpfung erstellen, indem Sie die ID weglassen?
{ id: 5, name: "Christopher", grades: [ {letter: 'A-'} ] }
Unterstützt Spring Boot diese Ideen?
Wenn Sie mit 'optionalen Modellen' somethink wie Optional was auch immer; Sie sollten keine Optionals in Pojos verwenden. –
Nicht unbedingt optionale Modelle, nur optional, ob das in JSON sein sollte oder nicht. Wenn 'Student' eine Liste mit 'Grades' hat, ich aber nur den Namen eines Studenten aktualisieren möchte, möchte ich nicht jedesmal das 'Grades'-Array POST senden müssen. – Christopher
Ich habe Data Transfer Object (DTOs) verwendet, um das von Ihnen beschriebene Problem zu lösen. Sie können auch @JsonIgnore-Annotation für Felder hinzufügen, die nicht serialisiert werden sollen. –