Betrachten Sie einen Benutzer (/ users/{id}) mit einem Namen und mehreren Speicherorten (/ users/{id}/locations).In RESTful-Webdiensten sollten Antwort-DTOs ihre untergeordneten DTOs enthalten?
Wenn ich einen Benutzer anfordere (/ user/{id}), sollte dieser Benutzer vollständig vertreten sein - seine ID, Name und Standorte - oder sollen Standorte nur auf eine separate Anfrage zurückgegeben werden? Zum Beispiel, welchen JSON DTO würden Sie bei einer Anfrage für einen Benutzer mit ID = 123 (/ users/123) erwarten:
1) {"id": 123, "name": "Peter", "locations": [{"id": 1, "name": "Chicago"}, {"id": 2, "name": "New York"}]}
2) {"id": 123, "name ":" Peter "," Standorte ": [{" id ": 1}, {" id ": 2}]}
3) {" id ": 123," name ":" Peter "," Standorte ": [1, 2]}
4) { "id": 123, "name":" Peter“}
Ist das mehr subjektiv, schieben und Ziehen zwischen der Größe der DTOs und Anforderungen im typischen Anwendungsfall? Ich neige dazu, einfach alle relevanten Daten einzubeziehen (1), aber ich bin nicht sicher, dass es besser ist, als Entwickler nur dazu zu zwingen, mehrere Aufrufe an eine API zu senden, um alle der Daten zu erhalten, die sie tatsächlich wollen.
Gibt es Gründe, warum Sie nicht einen Abfrageparameter hinzufügen würde Unterelement Sammlungen zum Ein-/Aus-Listing? Das wäre nicht anders als das Hinzufügen eines?format = {json | xhtml} zum Anpassen des Formats der Ausgabe ... – ScottCher
Hauptsächlich wegen der Entwicklungszeit; Ich möchte keine unerwarteten oder unnötigen Ergänzungen einführen. Ich möchte einfach "richtig" oder zumindest auf eine vernünftige, schnelle Art und Weise handeln. –