すべてのリソースがすべての動詞をサポートする必要はありません。 OPTIONS動詞は、どの動詞がサポートされているかを調べるためのものです。
私は、次のどちらかがどちらかが有効である可能性がかなり自明
GET http://api.example.org/RandomInteger
POST http://api.example.org/RandomNumberMachine
あると言うでしょう。 GETリクエストがキャッシュされるように注意してください。もしそうなら、あなたはランダムな結果を得ることはありません。
RESTの背後にある主な原則の1つは、URLが動詞ではなく名詞を表すことをモデル化することです。だからhttp://api.example.com/addは理想的なURLではありません。
あなたは追加するための番号が含まれているいくつかの標準的なフォーマットのエンティティボディで
GET http://api.example.org/Summation?Values=2,4
または
POST http://api.example.org/AddingMachine
を行うことができます。
"Add"で終わるURLと "summation"で終わるURLを区別するのはかなり賢明なようです。しかし、これは非常に単純な例であり、RESTの制約は、分散システムにとって望ましい特性を持つ設計を導くためのものです。
何年も前の人が
apple.bite()
と
bite(apple)
との違いを主張するだろう有意ではなかったです。私は最近、あまりにも多くの人がこの区別を却下するとは思わない。
"RESTの背後にある主な原則の1つは、あなたのURLが動詞ではなく名詞を表すことをモデル化することです。これは誤りです.RESTはURI命名については何も言いません。私はあなたが権威ある情報源に相談していないと思う。 – aehlke
私は言い換えるとどうですか? http動詞を正確に使用するための手引きの最も簡単な方法の1つは、名詞と動詞が含まれていないUri'sを使用することです。プロシージャ言語のように論理的にuriの名前を付ける必要はありません。プロシージャ名に論理名を付ける必要はありません。しかし、あなたのuriを名詞として読むことができれば、わかりやすいです。GET PUT DELETE –
GETの部分は、サーバーとクライアントの間にキャッシュが存在しないことに依存します。あなたは冪等元のリソースに対してGETを行うべきです。乱数は明らかにそうではありませんので、GETは有効な答えではないと思います。それはうまくいくかもしれませんが、正しく "RESTful"ではありません。 – occulus