2016-06-09 62 views
0

當我們使用PATCH時,我們正在部分更新資源。如果我想刪除部分資源,最佳做法是什麼?如何通過安靜的PATCH刪除子資源

例如:我們有一個Person資源:

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

比方說這個人離開了公司,並沒有工作,那麼companyId應設置爲在DB null。當我想通過API刪除Person中的companyId時,是否應將有效負載中的companyId設置爲null

PATCH: /person/3

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

我使用它設置爲{}刪除對象,或將其設置爲[]刪除陣列,但我不是100%確定什麼是一個基本屬性的最佳實踐(如在這種情況下的companyId)。任何想法?

感謝

回答

2

望着RFC 6902(定義修補程序標準),從客戶的角度來看,API可以被稱爲像

PATCH /person/3 

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

我想確切的內部實現(可空INT比0/-1作爲默認值)取決於您。

+0

*建議*標準。還沒有被接受,但我個人認爲這是'PATCH'的正確方法。 –

相關問題