HTTP PATCH用於資源的部分更新。而按我的理解,下列更新是可能的資源,其相關的修補程序(可能是更多,但我需要知道這兩個到底如何處理方式不同)資源上的HTTP PATCH添加/刪除字段
- 客戶資源更新場像手機號碼
- 在現有客戶資源(如電話號碼[4])上添加新電話號碼字段作爲新字段引入
我只想知道PATCH是否應處理第二種情況?如果是,那麼它應該如何,以及它與第一個有什麼不同?
HTTP PATCH用於資源的部分更新。而按我的理解,下列更新是可能的資源,其相關的修補程序(可能是更多,但我需要知道這兩個到底如何處理方式不同)資源上的HTTP PATCH添加/刪除字段
我只想知道PATCH是否應處理第二種情況?如果是,那麼它應該如何,以及它與第一個有什麼不同?
PATCH需要能夠描述一組修改目標資源的文檔格式。 HTTP格式本身並不是標準化的,它取決於你選擇你要使用的格式。這可能是一個簡單的差異文件,或者是專門爲序列化格式設計的東西,比如JSON-patch格式。
考慮到PATCH可以用於任何可以由您決定使用的修補算法執行的部分更新。如果客戶資源的媒體類型允許將電話號碼添加爲新字段,則使用PATCH添加該電話號碼是完全正確的,如果使用的修補算法可以執行添加。
是的,你可以使用,但方法PATCH
但我認爲,在使用該方法的情況下(第二方案)POST
更方便:
POST /users/<userid>/phones
Content-type: text/plain
+33 3 12 34 56 78
201 Created
編輯:
按照您的評論,方法PATCH
是你需要的。這裏有一些鏈接,可以幫助您定義有效載荷的格式爲您的要求:
否則,你可以注意到的OData提供直接有效載荷中的數據。請參閱此鏈接http://www.odata.org/getting-started/basic-tutorial/,「更新實體」部分。
希望它可以幫助你, 蒂埃裏
但發佈會創建一個新的資源,這不是一個理想的行爲.. – SSR 2015-03-25 11:27:38
佩德羅嗨..謝謝回答。可能JSON補丁是可以在這裏使用的一個很好的選擇。你知道其他修補算法嗎? – SSR 2015-03-25 11:33:53