2011-06-29 3 views
1

私はthisを読んでいます。REST PUT動詞と他のCRUDベースのアクションに関するいくつかの説明

  1. の答えと私は何を読んで、新しいリソースの作成の必要性はあなたがパラメータ、時にはバイナリデータを提供する必要があるリソースを作成するときにPUT動詞を使用しますが、ほとんどの場合に起こるによると:私はそれについていくつかの質問を持っています。 PUTで何をするのですか?マルチパートPOSTでそれを行うのは自然ではありませんか?
  2. PUTを使用してバイナリとStringの両方を送信するための例に、httpClientライブラリを使用してください。
  3. 基本的なCRUDアクションを超えて何かをしたい場合は、どのような動詞を使用しますか?リソースの1つに関するレポートを生成するようなものです。

あなたが実際のペイロードをHTTP動詞が混乱しているおかげで

答えて

2

。 PUTにマルチパートペイロードを使用できないようにするものはありません。 POSTを使用して新しいリソースを作成することはできますが、通常は別のURLにPOSTします。 副作用として、新しいリソースが作成され、Locationヘッダーに返される可能性があります。 リソースへのURLをすでに持っている場合は、PUTが使用されます。

REST!= CRUD。

安らかなアーキテクチャでは、リソースを考える必要があります。 したがって、 'レポート'はリソースの候補になる可能性があります。

レポートパラメータを/..../reportsなどのリソースにPOSTして、そのような方法で新しいレポートリソースを作成することができます。レポートのURLをLocationヘッダーに置き、GETを使用してレポートデータを実際に取得する(またはレポートデータをすぐに返す)

+0

こんにちは、すばらしい応答に感謝します。 put callはmultipartでも構いませんが、 ではApacheのFileUploadライブラリがPUT呼び出しのmultipartを認識しないという事実だけでなく、例の欠如も少し混乱していると思います。 – special0ne

関連する問題