質問

WebサービスをRESTfulとして分類するためにサーバーが許可する必要があるHTTP動詞の最小セットは何ですか?

ホスティング業者が PUT および DELETE を許可していない場合はどうなりますか?

これは実際に重要ですか、 GET POST だけで幸せに暮らせますか?


更新:回答者の皆様、ロジャーの答えは、おそらくビル・ベナーズとエリオット・ラスティ・ハロルドのインタビューへのリンクがあるため、最高でした。わかった。


役に立ちましたか?

解決

はい、PUTおよびDELETEなしで生きることができます。

この記事では、その理由を説明します。 http://www.artima.com/lejava/articles/why_put_and_delete.html

真のRESTafriansに対しては、これは異端かもしれません。現実世界では、あなたができることを、あなたが持っているものでやります。できる限り合理的で、独自の慣習にできる限り一貫性を持たせますが、PとDを使用せずに優れたRESTfulシステムを確実に構築できます。

rp

他のヒント

X-Http-Verb-Override:DELETE instも使用できます。 HTTP DELETEの。これは、HTTP動詞を変更できず、GETとPOSTのみをサポートするSilverlightクライアントにも役立ちます...

GETとPOSTのみを使用する場合、RESTfulです。 WebサービスはGETまたはPOSTのみを必要とすることしかできないため、それで問題ありません。

RESTは、プロトコルの実装が壊れている場合にプロトコル規約を破ることを可能にします(そのため、非標準的なことは実装の壊れた部分を回避することだけです)。したがって、REST内では、DELETEやPUTなどの一般的にサポートされていない動詞を表すために、他のメソッドを使用することができます。

編集:以下は、RESTを作成および定義したフィールディングの引用です:

  

REST APIには、HTTP’のPATCHメソッドやリンクヘッダーフィールドなど、標準プロトコルの指定不足ビットの詳細を記入または修正する以外に、通信プロトコルへの変更を含めないでください。壊れた実装の回避策(HTMLがHTTPのメソッドセットを定義していると信じるほど愚かなブラウザなど)は、回避策が最終的に廃止されることを期待して、個別に、または少なくとも付録で定義する必要があります。 [ここでの失敗は、リソースインターフェイスがオブジェクト固有であり、汎用ではないことを意味します。]

今日のWebブラウザはGETS + POSTのみを処理します。たとえばRailsでは、PUTS + DELETESは「偽造」されています。非表示のフォームフィールドを使用します。

フレームワークに「サポート」の回避策がない限りPUTS + DELETES、今のところ心配する必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow