2016-06-09 4 views
0

Wenn wir PATCH verwenden, aktualisieren wir teilweise eine Ressource. Was ist die beste Vorgehensweise, wenn ich einen Teil der Ressource entfernen möchte?Wie entferne ich eine Unterressource durch erholsamen PATCH

Zum Beispiel: Wir haben eine Person Ressource:

Person: 
{ 
    id: 3, 
    name: 'test', 
    companyId: 1, 
} 

Können sagen, diese Person das Unternehmen verlässt und keine Arbeit hat, dann sollte die CompanyID als null im DB eingestellt werden. Wenn ich die companyId in Person über API entfernen möchte, soll ich die CompanyId in der Nutzlast auch als null setzen?

PATCH: /person/3

Person: 
{ 
    id: 3, 
    companyId: null, 
} 

ich verwenden, um ein Objekt zu entfernen, indem es als {} Einstellung, oder ein Array entfernen, indem es als [] Einstellung, aber ich bin nicht 100% sicher, was die beste Praxis für eine primitive Unterkunft (wie die companyId in diesem Fall). Irgendeine Idee?

Dank

Antwort

2

am RFC 6902 Blick (die den Patch-Standard definiert), aus der Sicht des Kunden die API könnte wie

PATCH /person/3 

[ 
    { "op": "remove", "path": "/companyId"} 
] 

Ich denke, die genaue interne Implementierung (NULL festlegbare int vs 0/aufgerufen werden -1 als Standard) liegt bei Ihnen.

+0

* Vorgeschlagener * Standard. Noch nicht akzeptiert, obwohl ich persönlich denke, dass es der richtige Ansatz für 'PATCH' ist. –