arum
May 15, 2016, 11:23am
1
問1)
POSTとPUTの違いについて
(a)更新の場合はPOST、新規作成の場合はPUT
(b)新規作成の場合はPOST、更新の場合はPUT
の2つの説明を見かけたのですが
どちらが正しいのでしょうか。
問2)
IDを指定せずにElasticSearchにIDを決定させる時は
PUTではなくPOSTを使用しますが、
IDを新規に作成するわけだから新規作成になると
思いますが、そうするとPOSTは新規作成となるので
問1) は(b) が正しいのでしょうか。
問3)
ElasticSearchに決めさせずにユーザーがすべて指定する場合は、
新規作成も更新もどちらも、PUTでもPOSTでも可能のように
思えるのですが、これは正しいでしょうか。
問4)
問3)が正しいとするとPUTとPOSTの差異は
問2)のようなべき等でない場合のみであり、
そうすると
PUTでできることはすべてPOSTでもできるように
思えるのですが、これは正しいでしょうか。
よろしくお願いします。
johtani
(Jun Ohtani)
May 16, 2016, 2:48am
2
arum
May 16, 2016, 1:00pm
3
ちなみに、どちらにその記述がありましたでしょうか?
例えば、
(例1) yohei-y:weblog: REST 入門(その5) 四つの動詞 -- GET, POST, PUT, DELETE
・PUT はリソースを更新するメソッド
・POST はリソースを新規作成するメソッド
(例2) 書籍「高速スケーラブル検索エンジン Elasticsearch Server」 (アスキー・メディアワークス) 初版 33ページ
・POSTはオブジェクトの状態を変更する
・PUTはオブジェクトを生成する
などです。
IDなしの場合はPOSTを使用する必要があります。
Update APIに関してはPOSTのみの受付となります。
問5) これらはPUTでは駄目でPOSTを使用しなければならないケースですが、
逆に、POSTでは駄目でPUTを使用しなければならないケースはあるのでしょうか?
問6) 問5)のようにPUTかPOSTのどちらかが駄目ではないが、
つまり、PUTもPOSTもどちらも正常に実行しているが、
PUTとPOSTで実行結果が異なるようなケースはありますか?
なお、問1)~問6)は、
ElasticSearchにRESTAPIのコマンドを送って
作成・更新・取得・削除・検索・設定などの処理を
行わせる場合に限定してもらってもいいです。
よろしくお願いします。