2016-11-15 14 views
0

リソースが優れている、部分的に更新する必要がある場合のREST API残りのAPI更新リソース

を設計するために良い習慣を理解したいですか? PUTまたはPATCH

私の理解が

POST正しいかどうかをアドバイスしてください - アドレスIDの更新郵便番号に

{"custId":"1", "name":"Rocky", 
"address":[{"id":"1","zip":"1234"}, 
{"id":"2","zip":"12345"}] 
} 

今2つのアドレスをお客様に永続化するために1

PUT - 完全JSONはREST APIに送信する要件ですか?

{"custId":"1", "name":"Rocky", 
"address":[{"id":"1","zip":"9876"}, 
{"id":"2","zip":"12345"}] 
} 

PATCH - 部分的(または完全な)JSONは、REST APIに送信することができますか?

{"custId":"1", "name":"Rocky", 
"address":[{"id":"1","zip":"9876"}] 
} 

答えて

1

あなたの理解は基本的に正しいと思われますが、あなたの例はあなたの思考の潜在的な問題を示唆しています。あなたが話している文書は、実際にはアドレスの集合を持つ顧客です。 IDを持つため、各アドレスは別々のドキュメントとして見ることができます。したがって、お客様のAPIを更新することなく、1つのアドレスを更新することができます。あなたの例に欠けているのは、リソースのURIです。したがって、顧客を特定するためにはcustomer/1のようなものが必要です。住所を特定するにはcustomer/1/address/1のようなものが必要です。

+0

ありがとう、はい私は言及するのを忘れました。しかし、別の質問があります。顧客{id:1、firstN:fb、lastN:ln、dept:201、region:NA}の1つのプロパティ(lastN)を更新したいと仮定すると、{id :1、lastN:newLn} PATCHまたは{id:1、firstN:fb、lastN:newLn、dept:201、region:NA} PUTで –