[解決済み] RESTful url の動詞とアクションで最も良いもの/一般的なものは何ですか?
質問
私は、最も一般的なRESTfulなURLアクションに関するいくつかの情報を見つけようとしています。
例えば、アイテムの詳細を表示するため、アイテムを編集するため、更新するためなど、どのようなURLを使用しますか。
/question/show/<whatever>
/question/edit/<whatever>
/question/update/<whatever> (this is the post back url)
/question/list (lists the questions)
手伝ってくれた人に感謝します :)
どのように解決するのですか?
アクションではなく、オブジェクトを指定するために URL を使用します。
最初に述べたことはRESTfulではないことに注意してください。
/questions/show/<whatever>
その代わり、URLでオブジェクトを指定するようにしましょう。
/questions/<question>
次に、そのリソースに対して以下の操作のいずれかを実行します。
GETしてください。
リソースを取得したり、リソースのリストを問い合わせたり、リソースの読み取り専用情報を問い合わせるために使用します。
質問リソースを取得するために使用します。
GET /questions/<question> HTTP/1.1
Host: whateverblahblah.com
すべての質問リソースをリストアップする。
GET /questions HTTP/1.1
Host: whateverblahblah.com
POSTです。
リソースを作成するために使用します。
以下はエラーになることに注意。
POST /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
URLがまだ作成されていない場合、名前を指定しながらPOSTで作成するのはやめた方がいいです。 これは、まだ存在しないため、リソースが見つからないというエラーになるはずです。 まず、サーバーにリソースをPUTすべきです。新しい質問を作成することによって、あなたは/questionsリソースを更新していると主張することができます。
POSTを使用してリソースを作成するために、このようなことを行う必要があります。
POST /questions HTTP/1.1
Host: whateverblahblah.com
この場合、リソース名は指定されず、新しいオブジェクトのURLパスが返されることに注意してください。
DELETE。
リソースを削除するために使用します。
DELETE /questions/<question> HTTP/1.1
Host: whateverblahblah.com
PUTします。
リソースのURLを指定しながら、リソースを作成、または上書きするために使用します。
新規にリソースを作成する場合。
PUT /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
既存のリソースを上書きする場合。
PUT /questions/<existing_question> HTTP/1.1
Host: whateverblahblah.com
...はい、同じです。PUTはしばしば「編集」メソッドと呼ばれます。リソース全体を少し変更したバージョンに置き換えることで、クライアントが次に行うときにGETするものを編集したことになるからです。
HTMLフォームでRESTを使用する。
この HTML5 仕様では、form 要素の GET と POST を定義しています。 .
method content属性は、以下のキーワードと状態を持つ列挙型属性です。
- キーワードGET、状態GETに対応し、HTTP GETメソッドを示す。
- キーワードPOSTは、HTTP POSTメソッドを示す、状態POSTにマッピングされます。
技術的には、HTTPの仕様はこれらのメソッドだけに制限するものではありません。技術的には自由に好きなメソッドを追加することができますが、実際にはこれは良いアイデアではありません。データを読み込むために GET を使用することを誰もが知っているので、代わりに READ を使用することにした場合、問題を混乱させるということです。とはいえ...
PATCHです。
これは正式な RFC で定義されたメソッドです。リソースに部分的な変更を加えたいときに使用するように設計されており、PUTと同じように使用されます。
PATCH /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
違いは、PUTは実際に変更された内容に比べてどれだけ大きくても、リソース全体を送信しなければならないのに対し、PATCHは以下のように送信することができます。 だけ を送ることができます。
関連
-
[解決済み] RESTリソースの命名規則はSingularとPluralのどちらを使用すべきですか?
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み] RESTのネストされたリソースのベストプラクティスは何ですか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み】RESTful APIで多対多の関係を処理するにはどうすればよいですか?
-
[解決済み】REST認証スキームの安全性
-
[解決済み] Firefox Add-on RESTclient - POSTパラメータを入力する方法は?
-
[解決済み] REST API DESIGN - 異なるパラメータを持つが同じURLパターンでRESTを通してリソースを取得する。
-
[解決済み] 非推奨APIをクライアントに通知するためのHTTPレスポンスヘッダに関する規約
-
[解決済み] RESTful APIはステートレスである」をどう理解するか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] RESTリソースの命名規則はSingularとPluralのどちらを使用すべきですか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み] RESTfulなパスワードリセット
-
[解決済み] アイテムを大量に削除するためのRestfulな方法
-
[解決済み] GRPCとRESTはどう違うのですか?
-
[解決済み] ストリーミングリソースは、RESTfulパラダイムにどのように適合するか?
-
[解決済み] そのREST APIは本当にRPCなのか?ロイ・フィールディングはそう考えているようだ
-
[解決済み] RESTful API からのパジネーションレスポンスペイロード
-
[解決済み] REST api: 1回のgetで複数のリソースを要求する [重複].