2013-07-25 12 views
7

私はWebサービスについて語るJavascriptの本を読んでいますが、REST(Representational State Transfer)を使用することの欠点であると理解するのは難しいです。 RESTを使用しての最大の欠点のREST Webサービスの主な欠点

一つ多くのファイアウォールでは唯一のGETとPOSTメソッドの 通過を可能にする一方で、一部のブラウザ サポートのみGETとPOSTメソッドということです。

これは欠点とみなされています。 英語は私の第1言語ではないので、私はそれを見つけるのが難しいかもしれません。

誰かがこれについて詳しく説明できますか?

+2

これはよく書かれていません。 GETとPOSTはすべてのRESTサービスの欠点ではありません。 RESTサービスがGETとPOST以外のメソッドを使用している場合、他のメソッドに対するブラウザのサポートが不十分なために問題になることがあります。 –

+0

私は同意します。あなたの説明は私の本に書かれているものよりも理解できる。 –

答えて

4

RESTはPUTとDELETEメソッドとGETとPOSTをサポートしているため、ブラウザで実行する必要があるアプリケーションは限られています。

大会は、既存のオブジェクト/エンティティを更新および削除するDELETEにPUT、新しいオブジェクト/エンティティを作成するために、情報を取得するために、GET、POSTを使用することです...

+0

Downvoter - 気になるのは? – alfasin

1

アプリケーションならば、それがその欠点でありますDELETEまたはPUT要求に依存しているため、すべてのクライアントまたはネットワーク構成がそれをサポートしているわけではありません。つまり、回避策なしで展開できない場合があります。

これは実際の問題が残っているかわかりませんが、適切なDELETEまたはPUTを発行できないクライアントに対していくつかのフィルタ書き換え要求を行うことで簡単に解決できます。

1

よくREST Webサービスでは、HTTPリクエストメソッドPOST、GET、DELETE、PUTが使用されます。 これは、PUTとDELETEのHTTPリクエストメソッドがサポートされていないことを意味します。ドローバックですが、DTOを操作して回避する方法があります。これは、完全なRESTアプローチに従わないことを意味します。

2

通常、ウェブサービスは、Http仕様で定義されている多くのメソッドを利用しています。だから、作成メソッドはHTTPポストを使用し、読み取りメソッドはHTTP取得を使用します。メソッドはHTTPプットを更新し、メソッドはHTTPの削除を使用します。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.htmlおよびWhich HTTP methods match up to which CRUD methods?を参照してください。

ファイアウォールや一部のブラウザでは、PutとDeleteを使用できないことが懸念されます。これが有効な関心事かどうかはわかりません。私は今日、インターネットインフラストラクチャがこれをかなりうまく処理していると思います。

上記のCRUDメソッドスタックオーバーフローの記事が参考にコメント含まれています:

そしてPUT以来をし、DELETEがまだWebブラウザでサポートされていない、それが クエリを追加することによって、「過負荷POST」に大丈夫と考えています文字列引数 POSTのようなmethod = PUTまたはmethod = DELETEのようなもの

関連する問題