Ich bin eine REST-API Entwicklung und trotz einer Reihe von Praxisleitfäden Schleppen Ich kann nicht viel über die best practice der Handhabung der Disparität zwischen Repräsentationsstruktur finden benötigt für eine POST
vs die gleiche Repräsentation Struktur von einer GET
zurückgegeben.Handhabung RESTful Repräsentationsstruktur Differenz zwischen POST und GET
GET
für eine Dummy-user
Darstellung könnte wie folgt aussehen:
{
"id": 1234,
"created": "2012-04-23T18:25:43.511Z",
"username": "[email protected]",
"name": "John Doe"
}
jedoch POST
für die gleiche Dummy user
Darstellung kann nicht angeben, bestimmte Eigenschaften (nämlich die id
und created
):
{
"username": "[email protected]",
"name": "John Doe"
}
Offensichtlich ist dies ein übermäßig vereinfachtes Beispiel, aber vorausgesetzt, dass der Benutzer bestimmte Felder nicht spezifizieren kann (und es möglicherweise nicht immer s ist offensichtlich, welche für die angewandte Methode relevant sind) ist es Best Practice separate Darstellungen für jede oder die vollständigste Version zu erstellen und die Daten Disparität transparent auf dem Server zu behandeln?
Trotz der scheinbaren Leichtigkeit, eine einzige Darstellung zu haben und die Disparitätsserverseite zu handhaben, mache ich mir Sorgen, dass dies für einen Benutzer eine schlechte Erfahrung wäre, wenn nicht klar wäre, welche Werte spezifiziert werden können (oder geändert werden können)). Wenn die Tendenz besteht, separate Repräsentationen zu erstellen, gibt es eine Namenskonvention für die Definition der Repräsentation?
z.B. i_user
für eingehenden Benutzer und o_user
für ausgehenden Benutzer. Oder user_full
und user_min
oder user
und .user
usw.
Update: Mein allzu vereinfachtes Beispiel vielleicht nicht richtig, das Problem veranschaulicht, hat. Stellen Sie sich eine Repräsentation mit 50 Eigenschaften vor (z. B. eine Serverdarstellung mit all ihren Überwachungsattributen - cpu, ram, temp, storage_drive_a, storage_drive_b, file_permission usw.). Von diesen 50 Eigenschaften sind 30 schreibgeschützte Eigenschaften und 20 davon sind Werte kann eingestellt werden.