実際には、APIが各リソースで使用する必要があるリクエストタイプをどのように確立するかにかかっています。理想的な世界では
、あなたがなります
- は、リソースのコレクションにリソースを作成する
POST
を使用してください。例えばPOST /v1/cars
という2つの要求が発生すると、/v1/cars/1
と/v1/cars/2
が作成されます。
PUT
を使用してリソース属性を更新します。理想的には、すべての属性が同じ値を保持していても変更されている場合です。要求本体(ペイロード)には、すべての属性を含める必要があります。 PUTはidempotentです。つまり、同じリクエストボディ(ペイロード)を持つ2つのリクエストPUT /v1/cars/1
を作成すると、識別子1の車に属性で更新されます。N個の同一の要求が、同じ更新/変更されたエンティティ表現で終わる。
PATCH
を使用して、リソースに対して部分的な変更を実行します。あなたが車1のメイクとモデルだけを更新していて価格は更新していないのであれば、APIがサポートしている限り、パッチは理想的です。
実際には、あなたの質問に答えるために、使用しているAPI(バックエンド)を作成する人は、何に動詞を使うべきかを決定します。したがって、実際には、アップセルとアップデート、POSTの作成、POSTのGETを行うためのPOSTが使用されています。
angle.jsアプリが依存しているバックエンドを制御できる場合は、できるだけそれらのガイドラインにできるだけ近づけてください。しかし、それは単なるガイドラインであり、施行する必要はなく、何度もビジネス上のニーズによって、あなたはそれらから逸脱する必要があります。部分的なエンティティの更新、完全なエンティティの更新のためのPUT、またはすべての部分(部分/完全)のためのPATCHにはPATCHを使用します。あなたはあなたのために働くものを見つけるでしょう。あなたがあなたの質問に書いたパーセンテージのルールを忘れてしまって、それは事を複雑にするだけです。
私は個人的に、完全な部分的な更新としてパッチを使用します。だから私はAPIの2つのリソース更新方法をサポートする必要はないので、私はPUTをサポートしていません。しかし、私の同僚の中には、彼らのチームとパッチとしてPUTを使っている人もいます。だから彼らはパッチをサポートしていません。彼らはPUTを使って部分的な更新を行います.PUTはPUTとその顧客にも役立ちます。
もっと読むPATCH、POST、PUT
上の '' PUT'は、更新するPATCH'を作成します。この閾値/ 50%のナンセンスが何であるかわからない... – scniro