2016-11-16 8 views
0

質問RESTのAPIの設計上のベストプラクティスの例とPATCH対PUT

私は顧客

{id:1,firstN:fb,lastN:ln,dept:201,region:NA} 

の唯一つのプロパティ(lastN)を更新したいとし、その後1は/
{id:1,lastN:newLn}とを送信する必要がありますすることができますPATCH/PUTまたはその両方? {id:1,firstN:fb,lastN:newLn,dept:201,region:NA} PUT/PATCHまたはその両方?

私はすでに同様の(同じではない)質問hereを尋ねており、この回答も知りたいと思っています。

答えて

0

PUTを使用してリソース全体を更新する必要があります。部分的な更新の場合は、PATCHが正しい動詞です。

しかし、PATCHはPUTの代わりになります。部分的なプロパティのみを追加/更新する場合は、コンテンツタイプ "application/merge-patch + json"を使用する必要があります。本文には変更されたプロパティのみが含まれます。

https://tools.ietf.org/html/rfc7396

Content-Type: application/merge-patch+json 

{firstN:newFn,region:null,middleName:newMn} 

別の、より記述的代替は、実際に操作を定義JSONパッチドキュメントを使用することです。

https://tools.ietf.org/html/rfc6902#section-3

Content-Type: application/json-patch+json 

[ 
    { "op": "add", "path": "/middleName", "value": newMn }, 
    { "op": "remove", "path": "/region" }, 
    { "op": "replace", "path": "/firstN", "value": newFn }, 
] 
+0

おかげで、それがPATCHで行われるdiffのもののように見えます。 Hope PUTは、完全なjsonを再度送信することによって部分的な変更を更新するための良い設計としても受け入れられます –

関連する問題