2011-10-17 29 views
3

私はPlayフレームワークを使用して、REST API経由でSalesforceと統合されたWebアプリケーションを構築しています。そのインターフェイスにupsertコマンドを送るために、POSTメソッドの代わりにPATCHメソッドを使わなければならないかのように思えます。 PlayのWSRequestオブジェクトを使用し、POSTの代わりにメソッドの型をPATCHに変更することは可能ですか?そうでない場合は、どうすればリクエストオブジェクトを使用し、代わりにPATCHリクエストを送信できますか?SalesforceアップデートのPATCHメソッドを使用してリクエストを送信するにはどうすればよいですか?

学習の目的で、PATCHメソッドとは何ですか。なぜSalesforceはPOSTメソッドの代わりにSalesforceを使用するのですか?

答えて

4

私がプレイ中に利用可能なものについてはよく分からないが、あなたのライブラリがPATCHをサポートしていない場合REST API documentationから、ここでの回避策です:

あなたがないHTTPライブラリを使用する場合クエリの文字列パラメータ _HttpMethodを使用して、 任意のHTTPメソッド名を上書きまたは設定するには、POST要求を送信し、HTTPメソッドに のオーバーライドをHTTPメソッドに渡すことができます。例えば

、アカウントを更新するために、これは実際のPOSTリクエストで動作します:PATCHは、リソースへの部分的な更新のためにあるので、PATCHを使用しての背後にある理由については

.../services/data/v23.0/sobjects/Account/0016000000eEhmxAAC?_HttpMethod=PATCH 

、それがあります。つまり、更新するフィールドを送信するだけです。レコードのすべてのフィールドを更新して送信する必要がある場合は、おそらくPUTを使用する方がよいでしょう。 POSTは一般的に新しい挿入物のためのものです。 http://jasonsirota.com/rest-partial-updates-use-post-put-or-patch

+0

いい説明! – metadaddy

+0

有効になっていない –

+0

これはまだ動作しています:https://gist.github.com/ryanbrainard/9765354 – ryanbrainard

1

再生にはWSライブラリにPATCHメソッドが含まれていません。

は手動でこのメソッドを追加するために、あなたのアプリにフレームワークから(主にthesetwo)をいくつかのクラスを拡張することができますが、私は@ryanbrainardが提供する代替がbeterアプローチであると信じています:フラグをPOSTで_HttpMethodパラメータを使用しますパッチとしてです。

関連する問題