アクションではなく、URLを使用してオブジェクトを指定します。
最初に述べたことはRESTfulではないことに注意してください。
/questions/show/<whatever>
代わりに、URLを使用してオブジェクトを指定する必要があります。
/questions/<question>
次に、そのリソースに対して以下の操作のいずれかを実行します。
取得する:
リソースの取得、リソースのリストのクエリ、およびリソースの読み取り専用情報のクエリに使用されます。
質問リソースを入手するには:
GET /questions/<question> HTTP/1.1
Host: whateverblahblah.com
すべての質問リソースを一覧表示するには:
GET /questions HTTP/1.1
Host: whateverblahblah.com
役職:
リソースの作成に使用されます。
以下はエラーであることに注意してください。
POST /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
URLがまだ作成されていない場合は、名前を指定するときにPOSTを使用してURLを作成しないでください。これにより、まだ存在しないため、リソースが見つからないというエラーが発生するはずです。最初にサーバーにリソースを配置する必要があります。新しい質問を作成すると、質問のリストにもう1つの質問が返されるため、/ questionsリソースも更新していると主張できます。
POSTを使用してリソースを作成するには、次のようにする必要があります。
POST /questions HTTP/1.1
Host: whateverblahblah.com
この場合、リソース名が指定されていない場合、新しいオブジェクトのURLパスが返されることに注意してください。
削除:
リソースを削除するために使用されます。
DELETE /questions/<question> HTTP/1.1
Host: whateverblahblah.com
プット:
リソースのURLを指定するときに、リソースを作成または上書きするために使用されます。
新しいリソースの場合:
PUT /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
既存のリソースを上書きするには:
PUT /questions/<existing_question> HTTP/1.1
Host: whateverblahblah.com
...はい、同じです。PUTは、リソース全体をわずかに変更されたバージョンに置き換えることで、クライアントが次に取得するときに取得するものを編集したため、「編集」メソッドと呼ばれることがよくあります。
HTMLフォームでのRESTの使用:
HTML5仕様定義GETおよびPOSTのフォーム要素について。
メソッドcontent属性は、次のキーワードと状態を持つ列挙属性です。
- キーワードGETは、状態GETにマッピングされ、HTTPGETメソッドを示します。
- キーワードPOST、状態POSTにマッピング、HTTPPOSTメソッドを示します。
技術的には、HTTP仕様はこれらのメソッドのみに制限されていません。技術的には自由にメソッドを追加できますが、実際にはこれはお勧めできません。GETを使用してデータを読み取ることは誰もが知っているため、代わりにREADを使用することにした場合は問題が混乱します。そうは言っても...
パッチ:
これは、正式なRFCで定義されたメソッドです。これは、リソースに部分的な変更のみを送信する場合に使用するように設計されており、PUTのように使用されます。
PATCH /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
違いは、PUTは実際に変更されたものと比較してどれほど大きくても、リソース全体を送信する必要があるのに対し、PATCHは変更のみを送信できることです。